Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > f835bee5b8b7ec08e20fae17cab51e63 > files > 349

lib64mbedtls-devel-2.7.3-1.mga6.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mbed TLS v2.7.3: X.509 module</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">mbed TLS v2.7.3
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">X.509 module</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__x509__time.html">mbedtls_x509_time</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__x509__crl__entry.html">mbedtls_x509_crl_entry</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__x509__crt__profile.html">mbedtls_x509_crt_profile</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__x509write__cert.html">mbedtls_x509write_cert</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__x509write__csr.html">mbedtls_x509write_csr</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gab98caf7dfede54b5c576b5a27a5c6a6a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gab98caf7dfede54b5c576b5a27a5c6a6a">MBEDTLS_X509_MAX_INTERMEDIATE_CA</a>&#160;&#160;&#160;8</td></tr>
<tr class="separator:gab98caf7dfede54b5c576b5a27a5c6a6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae1bf556398cac1761aa2041908e9f619"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gae1bf556398cac1761aa2041908e9f619">mbedtls_dhm_parse_dhm</a> (<a class="el" href="structmbedtls__dhm__context.html">mbedtls_dhm_context</a> *dhm, const unsigned char *dhmin, size_t dhminlen)</td></tr>
<tr class="memdesc:gae1bf556398cac1761aa2041908e9f619"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function parses DHM parameters in PEM or DER format.  <a href="#gae1bf556398cac1761aa2041908e9f619">More...</a><br /></td></tr>
<tr class="separator:gae1bf556398cac1761aa2041908e9f619"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2f53ca5e795b7e8674f092777a5a828"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gae2f53ca5e795b7e8674f092777a5a828">mbedtls_dhm_parse_dhmfile</a> (<a class="el" href="structmbedtls__dhm__context.html">mbedtls_dhm_context</a> *dhm, const char *path)</td></tr>
<tr class="memdesc:gae2f53ca5e795b7e8674f092777a5a828"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function loads and parses DHM parameters from a file.  <a href="#gae2f53ca5e795b7e8674f092777a5a828">More...</a><br /></td></tr>
<tr class="separator:gae2f53ca5e795b7e8674f092777a5a828"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
X509 Error codes</h2></td></tr>
<tr class="memitem:ga185bc7f27a2b1f7742537a2377c52ee3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga185bc7f27a2b1f7742537a2377c52ee3">MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE</a>&#160;&#160;&#160;-0x2080</td></tr>
<tr class="separator:ga185bc7f27a2b1f7742537a2377c52ee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab4e8e2e41bfe62e969343efaa2784103"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gab4e8e2e41bfe62e969343efaa2784103">MBEDTLS_ERR_X509_UNKNOWN_OID</a>&#160;&#160;&#160;-0x2100</td></tr>
<tr class="separator:gab4e8e2e41bfe62e969343efaa2784103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45b8366804b7e2cbf3e25011f054802c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga45b8366804b7e2cbf3e25011f054802c">MBEDTLS_ERR_X509_INVALID_FORMAT</a>&#160;&#160;&#160;-0x2180</td></tr>
<tr class="separator:ga45b8366804b7e2cbf3e25011f054802c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga527608dc04b2c831fe5b161ec26aab76"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga527608dc04b2c831fe5b161ec26aab76">MBEDTLS_ERR_X509_INVALID_VERSION</a>&#160;&#160;&#160;-0x2200</td></tr>
<tr class="separator:ga527608dc04b2c831fe5b161ec26aab76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8124a68edabf35ed9323880584128f16"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga8124a68edabf35ed9323880584128f16">MBEDTLS_ERR_X509_INVALID_SERIAL</a>&#160;&#160;&#160;-0x2280</td></tr>
<tr class="separator:ga8124a68edabf35ed9323880584128f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae16cddbd42e08f6dd093cf4326e59413"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gae16cddbd42e08f6dd093cf4326e59413">MBEDTLS_ERR_X509_INVALID_ALG</a>&#160;&#160;&#160;-0x2300</td></tr>
<tr class="separator:gae16cddbd42e08f6dd093cf4326e59413"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f61c2f303bf065af4f783e03f952ede"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga8f61c2f303bf065af4f783e03f952ede">MBEDTLS_ERR_X509_INVALID_NAME</a>&#160;&#160;&#160;-0x2380</td></tr>
<tr class="separator:ga8f61c2f303bf065af4f783e03f952ede"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac36bf085ce8f7f57f039bda8828bd824"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gac36bf085ce8f7f57f039bda8828bd824">MBEDTLS_ERR_X509_INVALID_DATE</a>&#160;&#160;&#160;-0x2400</td></tr>
<tr class="separator:gac36bf085ce8f7f57f039bda8828bd824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga022c175386f082b4e056e6268ee68cab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga022c175386f082b4e056e6268ee68cab">MBEDTLS_ERR_X509_INVALID_SIGNATURE</a>&#160;&#160;&#160;-0x2480</td></tr>
<tr class="separator:ga022c175386f082b4e056e6268ee68cab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa0788dbf0325aea4ab566717514b4422"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaa0788dbf0325aea4ab566717514b4422">MBEDTLS_ERR_X509_INVALID_EXTENSIONS</a>&#160;&#160;&#160;-0x2500</td></tr>
<tr class="separator:gaa0788dbf0325aea4ab566717514b4422"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab80a4eb806328731def21ec2ebcbc365"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gab80a4eb806328731def21ec2ebcbc365">MBEDTLS_ERR_X509_UNKNOWN_VERSION</a>&#160;&#160;&#160;-0x2580</td></tr>
<tr class="separator:gab80a4eb806328731def21ec2ebcbc365"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga488f8616b42eae6fe3fb9815d43c976f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga488f8616b42eae6fe3fb9815d43c976f">MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG</a>&#160;&#160;&#160;-0x2600</td></tr>
<tr class="separator:ga488f8616b42eae6fe3fb9815d43c976f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac489ce5e8ba417bcd86012ebbb7f5044"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gac489ce5e8ba417bcd86012ebbb7f5044">MBEDTLS_ERR_X509_SIG_MISMATCH</a>&#160;&#160;&#160;-0x2680</td></tr>
<tr class="separator:gac489ce5e8ba417bcd86012ebbb7f5044"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba46df0041dcf48fa9d164d28cf3a154"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaba46df0041dcf48fa9d164d28cf3a154">MBEDTLS_ERR_X509_CERT_VERIFY_FAILED</a>&#160;&#160;&#160;-0x2700</td></tr>
<tr class="separator:gaba46df0041dcf48fa9d164d28cf3a154"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb90af9ad906c5075b1ad625ebc26553"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaeb90af9ad906c5075b1ad625ebc26553">MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT</a>&#160;&#160;&#160;-0x2780</td></tr>
<tr class="separator:gaeb90af9ad906c5075b1ad625ebc26553"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeeef11ebf0b31a54a665b1a3fd65c3f7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaeeef11ebf0b31a54a665b1a3fd65c3f7">MBEDTLS_ERR_X509_BAD_INPUT_DATA</a>&#160;&#160;&#160;-0x2800</td></tr>
<tr class="separator:gaeeef11ebf0b31a54a665b1a3fd65c3f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf6d98c6cbb76728260d1dcb1fe3bc7d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gacf6d98c6cbb76728260d1dcb1fe3bc7d">MBEDTLS_ERR_X509_ALLOC_FAILED</a>&#160;&#160;&#160;-0x2880</td></tr>
<tr class="separator:gacf6d98c6cbb76728260d1dcb1fe3bc7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad85d9c7aa5c30b9730297bef3386407c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gad85d9c7aa5c30b9730297bef3386407c">MBEDTLS_ERR_X509_FILE_IO_ERROR</a>&#160;&#160;&#160;-0x2900</td></tr>
<tr class="separator:gad85d9c7aa5c30b9730297bef3386407c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab9516fc53ff90c547fd77d35c71feec7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gab9516fc53ff90c547fd77d35c71feec7">MBEDTLS_ERR_X509_BUFFER_TOO_SMALL</a>&#160;&#160;&#160;-0x2980</td></tr>
<tr class="separator:gab9516fc53ff90c547fd77d35c71feec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50086f9edc8482b5e6b6e53c647d37ea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga50086f9edc8482b5e6b6e53c647d37ea">MBEDTLS_ERR_X509_FATAL_ERROR</a>&#160;&#160;&#160;-0x3000</td></tr>
<tr class="separator:ga50086f9edc8482b5e6b6e53c647d37ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
X509 Verify codes</h2></td></tr>
<tr class="memitem:ga5f03158dcacc5914872e38c68231b642"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga5f03158dcacc5914872e38c68231b642">MBEDTLS_X509_BADCERT_EXPIRED</a>&#160;&#160;&#160;0x01</td></tr>
<tr class="separator:ga5f03158dcacc5914872e38c68231b642"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddd96a9eb80fab17bce02d2a147ea504"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaddd96a9eb80fab17bce02d2a147ea504">MBEDTLS_X509_BADCERT_REVOKED</a>&#160;&#160;&#160;0x02</td></tr>
<tr class="separator:gaddd96a9eb80fab17bce02d2a147ea504"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6e71468985ebf243ca7cfce5c3dea881"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga6e71468985ebf243ca7cfce5c3dea881">MBEDTLS_X509_BADCERT_CN_MISMATCH</a>&#160;&#160;&#160;0x04</td></tr>
<tr class="separator:ga6e71468985ebf243ca7cfce5c3dea881"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e5b1d4c9c1a1a3227238c82042c1d1b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga0e5b1d4c9c1a1a3227238c82042c1d1b">MBEDTLS_X509_BADCERT_NOT_TRUSTED</a>&#160;&#160;&#160;0x08</td></tr>
<tr class="separator:ga0e5b1d4c9c1a1a3227238c82042c1d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1da8228ca957c2947fd329c32fc7ca4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gad1da8228ca957c2947fd329c32fc7ca4">MBEDTLS_X509_BADCRL_NOT_TRUSTED</a>&#160;&#160;&#160;0x10</td></tr>
<tr class="separator:gad1da8228ca957c2947fd329c32fc7ca4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebccb1707af21f2d3d6610a7c6485f32"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaebccb1707af21f2d3d6610a7c6485f32">MBEDTLS_X509_BADCRL_EXPIRED</a>&#160;&#160;&#160;0x20</td></tr>
<tr class="separator:gaebccb1707af21f2d3d6610a7c6485f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8bca03e3c2c89460bea17ab142b0b7ab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga8bca03e3c2c89460bea17ab142b0b7ab">MBEDTLS_X509_BADCERT_MISSING</a>&#160;&#160;&#160;0x40</td></tr>
<tr class="separator:ga8bca03e3c2c89460bea17ab142b0b7ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b87b2e1d26077023adf2a5c65a76776"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga1b87b2e1d26077023adf2a5c65a76776">MBEDTLS_X509_BADCERT_SKIP_VERIFY</a>&#160;&#160;&#160;0x80</td></tr>
<tr class="separator:ga1b87b2e1d26077023adf2a5c65a76776"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76bdd50937a671ef62474b7e38e23e02"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga76bdd50937a671ef62474b7e38e23e02">MBEDTLS_X509_BADCERT_OTHER</a>&#160;&#160;&#160;0x0100</td></tr>
<tr class="separator:ga76bdd50937a671ef62474b7e38e23e02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac769acbb18e53198ae2d2e63bd339cfa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gac769acbb18e53198ae2d2e63bd339cfa">MBEDTLS_X509_BADCERT_FUTURE</a>&#160;&#160;&#160;0x0200</td></tr>
<tr class="separator:gac769acbb18e53198ae2d2e63bd339cfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad93c0f614969729f7d13fb0a3acac68e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gad93c0f614969729f7d13fb0a3acac68e">MBEDTLS_X509_BADCRL_FUTURE</a>&#160;&#160;&#160;0x0400</td></tr>
<tr class="separator:gad93c0f614969729f7d13fb0a3acac68e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28705c8c3091a013487df25842249c0f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga28705c8c3091a013487df25842249c0f">MBEDTLS_X509_BADCERT_KEY_USAGE</a>&#160;&#160;&#160;0x0800</td></tr>
<tr class="separator:ga28705c8c3091a013487df25842249c0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3dab3183efdbca7e988916e7fc1a02a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gac3dab3183efdbca7e988916e7fc1a02a">MBEDTLS_X509_BADCERT_EXT_KEY_USAGE</a>&#160;&#160;&#160;0x1000</td></tr>
<tr class="separator:gac3dab3183efdbca7e988916e7fc1a02a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa383ae441177fa7a16fb2313bb48bb10"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaa383ae441177fa7a16fb2313bb48bb10">MBEDTLS_X509_BADCERT_NS_CERT_TYPE</a>&#160;&#160;&#160;0x2000</td></tr>
<tr class="separator:gaa383ae441177fa7a16fb2313bb48bb10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41b54b526c11bf51cc431ef1a151816d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga41b54b526c11bf51cc431ef1a151816d">MBEDTLS_X509_BADCERT_BAD_MD</a>&#160;&#160;&#160;0x4000</td></tr>
<tr class="separator:ga41b54b526c11bf51cc431ef1a151816d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9332fa1e09a373cc56234525b14546c4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga9332fa1e09a373cc56234525b14546c4">MBEDTLS_X509_BADCERT_BAD_PK</a>&#160;&#160;&#160;0x8000</td></tr>
<tr class="separator:ga9332fa1e09a373cc56234525b14546c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef5f9a34b327eb79750ebc3779e98282"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaef5f9a34b327eb79750ebc3779e98282">MBEDTLS_X509_BADCERT_BAD_KEY</a>&#160;&#160;&#160;0x010000</td></tr>
<tr class="separator:gaef5f9a34b327eb79750ebc3779e98282"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3f810fb74f94164185b88b90fffa329"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gad3f810fb74f94164185b88b90fffa329">MBEDTLS_X509_BADCRL_BAD_MD</a>&#160;&#160;&#160;0x020000</td></tr>
<tr class="separator:gad3f810fb74f94164185b88b90fffa329"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga182a6f1f465e566de7586e6ee8fa7c4e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga182a6f1f465e566de7586e6ee8fa7c4e">MBEDTLS_X509_BADCRL_BAD_PK</a>&#160;&#160;&#160;0x040000</td></tr>
<tr class="separator:ga182a6f1f465e566de7586e6ee8fa7c4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2947ead6fd1035296826110ca74a364"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gac2947ead6fd1035296826110ca74a364">MBEDTLS_X509_BADCRL_BAD_KEY</a>&#160;&#160;&#160;0x080000</td></tr>
<tr class="separator:gac2947ead6fd1035296826110ca74a364"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Structures for parsing X.509 certificates, CRLs and CSRs</h2></td></tr>
<tr class="memitem:ga4d02c9e8e4e2934555e0d132cd2976dc"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga4d02c9e8e4e2934555e0d132cd2976dc">mbedtls_x509_buf</a></td></tr>
<tr class="separator:ga4d02c9e8e4e2934555e0d132cd2976dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf25a97602f25027e160f22f6d5590636"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmbedtls__asn1__bitstring.html">mbedtls_asn1_bitstring</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaf25a97602f25027e160f22f6d5590636">mbedtls_x509_bitstring</a></td></tr>
<tr class="separator:gaf25a97602f25027e160f22f6d5590636"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2272228c7776102328df31623af3168c"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga2272228c7776102328df31623af3168c">mbedtls_x509_name</a></td></tr>
<tr class="separator:ga2272228c7776102328df31623af3168c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabd52d60a09315854d9ef849d02154f35"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmbedtls__asn1__sequence.html">mbedtls_asn1_sequence</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gabd52d60a09315854d9ef849d02154f35">mbedtls_x509_sequence</a></td></tr>
<tr class="separator:gabd52d60a09315854d9ef849d02154f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga38827540a02fb2ddca08ec0917a8a41b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__x509__time.html">mbedtls_x509_time</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga38827540a02fb2ddca08ec0917a8a41b">mbedtls_x509_time</a></td></tr>
<tr class="separator:ga38827540a02fb2ddca08ec0917a8a41b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Structures and functions for parsing CRLs</h2></td></tr>
<tr class="memitem:ga1e0c6230061fd501f9d00bd1b09ade33"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__x509__crl__entry.html">mbedtls_x509_crl_entry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga1e0c6230061fd501f9d00bd1b09ade33">mbedtls_x509_crl_entry</a></td></tr>
<tr class="separator:ga1e0c6230061fd501f9d00bd1b09ade33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7957605a0ced963e12880ec9e19874fc"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga7957605a0ced963e12880ec9e19874fc">mbedtls_x509_crl</a></td></tr>
<tr class="separator:ga7957605a0ced963e12880ec9e19874fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29ab5f1216a727b334ee26cce9f5d4b5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga29ab5f1216a727b334ee26cce9f5d4b5">mbedtls_x509_crl_parse_der</a> (<a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a> *chain, const unsigned char *buf, size_t buflen)</td></tr>
<tr class="memdesc:ga29ab5f1216a727b334ee26cce9f5d4b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a DER-encoded CRL and append it to the chained list.  <a href="#ga29ab5f1216a727b334ee26cce9f5d4b5">More...</a><br /></td></tr>
<tr class="separator:ga29ab5f1216a727b334ee26cce9f5d4b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadfce4fc5f5af62e371695e74c5b67d70"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gadfce4fc5f5af62e371695e74c5b67d70">mbedtls_x509_crl_parse</a> (<a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a> *chain, const unsigned char *buf, size_t buflen)</td></tr>
<tr class="memdesc:gadfce4fc5f5af62e371695e74c5b67d70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse one or more CRLs and append them to the chained list.  <a href="#gadfce4fc5f5af62e371695e74c5b67d70">More...</a><br /></td></tr>
<tr class="separator:gadfce4fc5f5af62e371695e74c5b67d70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e096827f1240b8f8bc15d6a83593f22"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga8e096827f1240b8f8bc15d6a83593f22">mbedtls_x509_crl_parse_file</a> (<a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a> *chain, const char *path)</td></tr>
<tr class="memdesc:ga8e096827f1240b8f8bc15d6a83593f22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load one or more CRLs and append them to the chained list.  <a href="#ga8e096827f1240b8f8bc15d6a83593f22">More...</a><br /></td></tr>
<tr class="separator:ga8e096827f1240b8f8bc15d6a83593f22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35898e101f5039c6db6b930da9892366"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga35898e101f5039c6db6b930da9892366">mbedtls_x509_crl_info</a> (char *buf, size_t size, const char *prefix, const <a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a> *crl)</td></tr>
<tr class="memdesc:ga35898e101f5039c6db6b930da9892366"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an informational string about the CRL.  <a href="#ga35898e101f5039c6db6b930da9892366">More...</a><br /></td></tr>
<tr class="separator:ga35898e101f5039c6db6b930da9892366"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8513a192e281217802837571da98e218"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga8513a192e281217802837571da98e218">mbedtls_x509_crl_init</a> (<a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a> *crl)</td></tr>
<tr class="memdesc:ga8513a192e281217802837571da98e218"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a CRL (chain)  <a href="#ga8513a192e281217802837571da98e218">More...</a><br /></td></tr>
<tr class="separator:ga8513a192e281217802837571da98e218"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb19c3326889f9e493fbd605c1113b96"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaeb19c3326889f9e493fbd605c1113b96">mbedtls_x509_crl_free</a> (<a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a> *crl)</td></tr>
<tr class="memdesc:gaeb19c3326889f9e493fbd605c1113b96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unallocate all CRL data.  <a href="#gaeb19c3326889f9e493fbd605c1113b96">More...</a><br /></td></tr>
<tr class="separator:gaeb19c3326889f9e493fbd605c1113b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Structures and functions for parsing and writing X.509 certificates</h2></td></tr>
<tr class="memitem:ga836544fec94d5bc02bc97aa87885b9d9"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga836544fec94d5bc02bc97aa87885b9d9">mbedtls_x509_crt</a></td></tr>
<tr class="separator:ga836544fec94d5bc02bc97aa87885b9d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacc3115587f8d882a7a137c38d6939e07"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__x509write__cert.html">mbedtls_x509write_cert</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gacc3115587f8d882a7a137c38d6939e07">mbedtls_x509write_cert</a></td></tr>
<tr class="separator:gacc3115587f8d882a7a137c38d6939e07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9cd2de10ffeff0f339abcc1ba7e26fdf"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmbedtls__x509__crt__profile.html">mbedtls_x509_crt_profile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga9cd2de10ffeff0f339abcc1ba7e26fdf">mbedtls_x509_crt_profile_default</a></td></tr>
<tr class="separator:ga9cd2de10ffeff0f339abcc1ba7e26fdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ab1f8a044fd25f76ecb4ba15c6d5bcd"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmbedtls__x509__crt__profile.html">mbedtls_x509_crt_profile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga8ab1f8a044fd25f76ecb4ba15c6d5bcd">mbedtls_x509_crt_profile_next</a></td></tr>
<tr class="separator:ga8ab1f8a044fd25f76ecb4ba15c6d5bcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf09067a39129236125e353a68ceb45d6"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmbedtls__x509__crt__profile.html">mbedtls_x509_crt_profile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaf09067a39129236125e353a68ceb45d6">mbedtls_x509_crt_profile_suiteb</a></td></tr>
<tr class="separator:gaf09067a39129236125e353a68ceb45d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga003c2483a2691e025641fa9d68d4a96a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga003c2483a2691e025641fa9d68d4a96a">mbedtls_x509_crt_parse_der</a> (<a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *chain, const unsigned char *buf, size_t buflen)</td></tr>
<tr class="memdesc:ga003c2483a2691e025641fa9d68d4a96a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a single DER formatted certificate and add it to the chained list.  <a href="#ga003c2483a2691e025641fa9d68d4a96a">More...</a><br /></td></tr>
<tr class="separator:ga003c2483a2691e025641fa9d68d4a96a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga033567483649030f7f859db4f4cb7e14"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga033567483649030f7f859db4f4cb7e14">mbedtls_x509_crt_parse</a> (<a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *chain, const unsigned char *buf, size_t buflen)</td></tr>
<tr class="memdesc:ga033567483649030f7f859db4f4cb7e14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse one or more certificates and add them to the chained list. Parses permissively. If some certificates can be parsed, the result is the number of failed certificates it encountered. If none complete correctly, the first error is returned.  <a href="#ga033567483649030f7f859db4f4cb7e14">More...</a><br /></td></tr>
<tr class="separator:ga033567483649030f7f859db4f4cb7e14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4da63133d3590aa311488497d4c38ec"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gad4da63133d3590aa311488497d4c38ec">mbedtls_x509_crt_parse_file</a> (<a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *chain, const char *path)</td></tr>
<tr class="memdesc:gad4da63133d3590aa311488497d4c38ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load one or more certificates and add them to the chained list. Parses permissively. If some certificates can be parsed, the result is the number of failed certificates it encountered. If none complete correctly, the first error is returned.  <a href="#gad4da63133d3590aa311488497d4c38ec">More...</a><br /></td></tr>
<tr class="separator:gad4da63133d3590aa311488497d4c38ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga571fc89b9f3217ab3dd67bd7af905066"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga571fc89b9f3217ab3dd67bd7af905066">mbedtls_x509_crt_parse_path</a> (<a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *chain, const char *path)</td></tr>
<tr class="memdesc:ga571fc89b9f3217ab3dd67bd7af905066"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load one or more certificate files from a path and add them to the chained list. Parses permissively. If some certificates can be parsed, the result is the number of failed certificates it encountered. If none complete correctly, the first error is returned.  <a href="#ga571fc89b9f3217ab3dd67bd7af905066">More...</a><br /></td></tr>
<tr class="separator:ga571fc89b9f3217ab3dd67bd7af905066"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabaf30f2269fc3b6608b25871f9d09da6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gabaf30f2269fc3b6608b25871f9d09da6">mbedtls_x509_crt_info</a> (char *buf, size_t size, const char *prefix, const <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *crt)</td></tr>
<tr class="memdesc:gabaf30f2269fc3b6608b25871f9d09da6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an informational string about the certificate.  <a href="#gabaf30f2269fc3b6608b25871f9d09da6">More...</a><br /></td></tr>
<tr class="separator:gabaf30f2269fc3b6608b25871f9d09da6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae88f1d8e6696eb2beeffe0a708219e6b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gae88f1d8e6696eb2beeffe0a708219e6b">mbedtls_x509_crt_verify_info</a> (char *buf, size_t size, const char *prefix, uint32_t flags)</td></tr>
<tr class="memdesc:gae88f1d8e6696eb2beeffe0a708219e6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an informational string about the verification status of a certificate.  <a href="#gae88f1d8e6696eb2beeffe0a708219e6b">More...</a><br /></td></tr>
<tr class="separator:gae88f1d8e6696eb2beeffe0a708219e6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98ed4504e4f832b735a230acf54fcde3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga98ed4504e4f832b735a230acf54fcde3">mbedtls_x509_crt_verify</a> (<a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *crt, <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *trust_ca, <a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a> *ca_crl, const char *cn, uint32_t *flags, int(*f_vrfy)(void *, <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *, int, uint32_t *), void *p_vrfy)</td></tr>
<tr class="memdesc:ga98ed4504e4f832b735a230acf54fcde3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify the certificate signature.  <a href="#ga98ed4504e4f832b735a230acf54fcde3">More...</a><br /></td></tr>
<tr class="separator:ga98ed4504e4f832b735a230acf54fcde3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf044a51e5b5bc854bf12aeeccb440e55"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaf044a51e5b5bc854bf12aeeccb440e55">mbedtls_x509_crt_verify_with_profile</a> (<a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *crt, <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *trust_ca, <a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a> *ca_crl, const <a class="el" href="structmbedtls__x509__crt__profile.html">mbedtls_x509_crt_profile</a> *profile, const char *cn, uint32_t *flags, int(*f_vrfy)(void *, <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *, int, uint32_t *), void *p_vrfy)</td></tr>
<tr class="memdesc:gaf044a51e5b5bc854bf12aeeccb440e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify the certificate signature according to profile.  <a href="#gaf044a51e5b5bc854bf12aeeccb440e55">More...</a><br /></td></tr>
<tr class="separator:gaf044a51e5b5bc854bf12aeeccb440e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ab7857ffd82467207e718bb9f0131a2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga0ab7857ffd82467207e718bb9f0131a2">mbedtls_x509_crt_check_key_usage</a> (const <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *crt, unsigned int usage)</td></tr>
<tr class="memdesc:ga0ab7857ffd82467207e718bb9f0131a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check usage of certificate against keyUsage extension.  <a href="#ga0ab7857ffd82467207e718bb9f0131a2">More...</a><br /></td></tr>
<tr class="separator:ga0ab7857ffd82467207e718bb9f0131a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad21c0e75a3fdbeb1f65e4d339e479df3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gad21c0e75a3fdbeb1f65e4d339e479df3">mbedtls_x509_crt_check_extended_key_usage</a> (const <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *crt, const char *usage_oid, size_t usage_len)</td></tr>
<tr class="memdesc:gad21c0e75a3fdbeb1f65e4d339e479df3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check usage of certificate against extendedKeyUsage.  <a href="#gad21c0e75a3fdbeb1f65e4d339e479df3">More...</a><br /></td></tr>
<tr class="separator:gad21c0e75a3fdbeb1f65e4d339e479df3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0dc256a70f90cb68002d53bafffab232"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga0dc256a70f90cb68002d53bafffab232">mbedtls_x509_crt_is_revoked</a> (const <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *crt, const <a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a> *crl)</td></tr>
<tr class="memdesc:ga0dc256a70f90cb68002d53bafffab232"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify the certificate revocation status.  <a href="#ga0dc256a70f90cb68002d53bafffab232">More...</a><br /></td></tr>
<tr class="separator:ga0dc256a70f90cb68002d53bafffab232"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga016dd06bc770e77b84005f305df20ed1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga016dd06bc770e77b84005f305df20ed1">mbedtls_x509_crt_init</a> (<a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *crt)</td></tr>
<tr class="memdesc:ga016dd06bc770e77b84005f305df20ed1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a certificate (chain)  <a href="#ga016dd06bc770e77b84005f305df20ed1">More...</a><br /></td></tr>
<tr class="separator:ga016dd06bc770e77b84005f305df20ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab33c1e4e20bea7ce536119f54a113c6b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gab33c1e4e20bea7ce536119f54a113c6b">mbedtls_x509_crt_free</a> (<a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *crt)</td></tr>
<tr class="memdesc:gab33c1e4e20bea7ce536119f54a113c6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unallocate all certificate data.  <a href="#gab33c1e4e20bea7ce536119f54a113c6b">More...</a><br /></td></tr>
<tr class="separator:gab33c1e4e20bea7ce536119f54a113c6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaedcb73f1c615c266a348a0c62763c5de"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaedcb73f1c615c266a348a0c62763c5de">MBEDTLS_X509_ID_FLAG</a>(id)&#160;&#160;&#160;( 1 &lt;&lt; ( id - 1 ) )</td></tr>
<tr class="separator:gaedcb73f1c615c266a348a0c62763c5de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d124765addc200627de55f2018b1ed3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga8d124765addc200627de55f2018b1ed3">MBEDTLS_X509_CRT_VERSION_1</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga8d124765addc200627de55f2018b1ed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46a0b7f3a4c1f279f609fd8ea304c192"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga46a0b7f3a4c1f279f609fd8ea304c192">MBEDTLS_X509_CRT_VERSION_2</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga46a0b7f3a4c1f279f609fd8ea304c192"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c22a610222ea94e1faf96223bc5d9a4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga7c22a610222ea94e1faf96223bc5d9a4">MBEDTLS_X509_CRT_VERSION_3</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ga7c22a610222ea94e1faf96223bc5d9a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga189113155d9c64d4b4255b16761377c7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga189113155d9c64d4b4255b16761377c7">MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN</a>&#160;&#160;&#160;32</td></tr>
<tr class="separator:ga189113155d9c64d4b4255b16761377c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga533580091501768fa25d4d682febbb08"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga533580091501768fa25d4d682febbb08">MBEDTLS_X509_RFC5280_UTC_TIME_LEN</a>&#160;&#160;&#160;15</td></tr>
<tr class="separator:ga533580091501768fa25d4d682febbb08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ebc833300be4f784ac13ff0a38085ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga4ebc833300be4f784ac13ff0a38085ce">MBEDTLS_X509_MAX_FILE_PATH_LEN</a>&#160;&#160;&#160;512</td></tr>
<tr class="separator:ga4ebc833300be4f784ac13ff0a38085ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Structures and functions for X.509 Certificate Signing Requests (CSR)</h2></td></tr>
<tr class="memitem:gae481b23df67001bdac96ef9c2ab3ef7c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gae481b23df67001bdac96ef9c2ab3ef7c">mbedtls_x509_csr</a></td></tr>
<tr class="separator:gae481b23df67001bdac96ef9c2ab3ef7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b0b4f8c5cfd541ee20c53907edb636d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__x509write__csr.html">mbedtls_x509write_csr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga7b0b4f8c5cfd541ee20c53907edb636d">mbedtls_x509write_csr</a></td></tr>
<tr class="separator:ga7b0b4f8c5cfd541ee20c53907edb636d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c58fa3804ea9feb1acf745221f17208"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga4c58fa3804ea9feb1acf745221f17208">mbedtls_x509_csr_parse_der</a> (<a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *csr, const unsigned char *buf, size_t buflen)</td></tr>
<tr class="memdesc:ga4c58fa3804ea9feb1acf745221f17208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a Certificate Signing Request (CSR) in DER format.  <a href="#ga4c58fa3804ea9feb1acf745221f17208">More...</a><br /></td></tr>
<tr class="separator:ga4c58fa3804ea9feb1acf745221f17208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53012fb8859f4835ccfb0a5e359b3176"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga53012fb8859f4835ccfb0a5e359b3176">mbedtls_x509_csr_parse</a> (<a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *csr, const unsigned char *buf, size_t buflen)</td></tr>
<tr class="memdesc:ga53012fb8859f4835ccfb0a5e359b3176"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a Certificate Signing Request (CSR), DER or PEM format.  <a href="#ga53012fb8859f4835ccfb0a5e359b3176">More...</a><br /></td></tr>
<tr class="separator:ga53012fb8859f4835ccfb0a5e359b3176"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf49db7323eee45d9649600de18d715f8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaf49db7323eee45d9649600de18d715f8">mbedtls_x509_csr_parse_file</a> (<a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *csr, const char *path)</td></tr>
<tr class="memdesc:gaf49db7323eee45d9649600de18d715f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a Certificate Signing Request (CSR)  <a href="#gaf49db7323eee45d9649600de18d715f8">More...</a><br /></td></tr>
<tr class="separator:gaf49db7323eee45d9649600de18d715f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeec330c8cb351adc2870f4f088f36fdc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gaeec330c8cb351adc2870f4f088f36fdc">mbedtls_x509_csr_info</a> (char *buf, size_t size, const char *prefix, const <a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *csr)</td></tr>
<tr class="memdesc:gaeec330c8cb351adc2870f4f088f36fdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an informational string about the CSR.  <a href="#gaeec330c8cb351adc2870f4f088f36fdc">More...</a><br /></td></tr>
<tr class="separator:gaeec330c8cb351adc2870f4f088f36fdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga984db025f6953ea61be7dfca2d928f37"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#ga984db025f6953ea61be7dfca2d928f37">mbedtls_x509_csr_init</a> (<a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *csr)</td></tr>
<tr class="memdesc:ga984db025f6953ea61be7dfca2d928f37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a CSR.  <a href="#ga984db025f6953ea61be7dfca2d928f37">More...</a><br /></td></tr>
<tr class="separator:ga984db025f6953ea61be7dfca2d928f37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2139becff64aa7294ecad4f40767a84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__x509__module.html#gac2139becff64aa7294ecad4f40767a84">mbedtls_x509_csr_free</a> (<a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *csr)</td></tr>
<tr class="memdesc:gac2139becff64aa7294ecad4f40767a84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unallocate all CSR data.  <a href="#gac2139becff64aa7294ecad4f40767a84">More...</a><br /></td></tr>
<tr class="separator:gac2139becff64aa7294ecad4f40767a84"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>The X.509 module provides X.509 support for reading, writing and verification of certificates. In summary:</p><ul>
<li>X.509 certificate (CRT) reading (see <code><a class="el" href="group__x509__module.html#ga033567483649030f7f859db4f4cb7e14" title="Parse one or more certificates and add them to the chained list. Parses permissively. If some certificates can be parsed, the result is the number of failed certificates it encountered. If none complete correctly, the first error is returned. ">mbedtls_x509_crt_parse()</a></code>, <code><a class="el" href="group__x509__module.html#ga003c2483a2691e025641fa9d68d4a96a" title="Parse a single DER formatted certificate and add it to the chained list. ">mbedtls_x509_crt_parse_der()</a></code>, <code><a class="el" href="group__x509__module.html#gad4da63133d3590aa311488497d4c38ec" title="Load one or more certificates and add them to the chained list. Parses permissively. If some certificates can be parsed, the result is the number of failed certificates it encountered. If none complete correctly, the first error is returned. ">mbedtls_x509_crt_parse_file()</a></code>).</li>
<li>X.509 certificate revocation list (CRL) reading (see <code><a class="el" href="group__x509__module.html#gadfce4fc5f5af62e371695e74c5b67d70" title="Parse one or more CRLs and append them to the chained list. ">mbedtls_x509_crl_parse()</a></code>, <code><a class="el" href="group__x509__module.html#ga29ab5f1216a727b334ee26cce9f5d4b5" title="Parse a DER-encoded CRL and append it to the chained list. ">mbedtls_x509_crl_parse_der()</a></code>, and <code><a class="el" href="group__x509__module.html#ga8e096827f1240b8f8bc15d6a83593f22" title="Load one or more CRLs and append them to the chained list. ">mbedtls_x509_crl_parse_file()</a></code>).</li>
<li>X.509 certificate signature verification (see <code><a class="el" href="group__x509__module.html#ga98ed4504e4f832b735a230acf54fcde3" title="Verify the certificate signature. ">mbedtls_x509_crt_verify()</a></code> and <code><a class="el" href="group__x509__module.html#gaf044a51e5b5bc854bf12aeeccb440e55" title="Verify the certificate signature according to profile. ">mbedtls_x509_crt_verify_with_profile()</a></code>.</li>
<li>X.509 certificate writing and certificate request writing (see <code><a class="el" href="x509__crt_8h.html#ada0550c8f7ce3e8b360f69c7475fa32f" title="Write a built up certificate to a X509 DER structure Note: data is written at the end of the buffer! ...">mbedtls_x509write_crt_der()</a></code> and <code><a class="el" href="x509__csr_8h.html#ade066bfe50987c491ff51ce4f347fcb4" title="Write a CSR (Certificate Signing Request) to a DER structure Note: data is written at the end of the ...">mbedtls_x509write_csr_der()</a></code>).</li>
</ul>
<p>This module can be used to build a certificate authority (CA) chain and verify its signature. It is also used to generate Certificate Signing Requests and X.509 certificates just as a CA would do. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gacf6d98c6cbb76728260d1dcb1fe3bc7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacf6d98c6cbb76728260d1dcb1fe3bc7d">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_ALLOC_FAILED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_ALLOC_FAILED&#160;&#160;&#160;-0x2880</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Allocation of memory failed. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00077">77</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gaeeef11ebf0b31a54a665b1a3fd65c3f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeeef11ebf0b31a54a665b1a3fd65c3f7">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_BAD_INPUT_DATA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_BAD_INPUT_DATA&#160;&#160;&#160;-0x2800</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Input invalid. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00076">76</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gab9516fc53ff90c547fd77d35c71feec7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab9516fc53ff90c547fd77d35c71feec7">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_BUFFER_TOO_SMALL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_BUFFER_TOO_SMALL&#160;&#160;&#160;-0x2980</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Destination buffer is too small. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00079">79</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gaeb90af9ad906c5075b1ad625ebc26553"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeb90af9ad906c5075b1ad625ebc26553">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT&#160;&#160;&#160;-0x2780</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Format not recognized as DER or PEM. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00075">75</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gaba46df0041dcf48fa9d164d28cf3a154"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaba46df0041dcf48fa9d164d28cf3a154">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_CERT_VERIFY_FAILED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_CERT_VERIFY_FAILED&#160;&#160;&#160;-0x2700</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Certificate verification failed, e.g. CRL, CA or signature check failed. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00074">74</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga50086f9edc8482b5e6b6e53c647d37ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga50086f9edc8482b5e6b6e53c647d37ea">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_FATAL_ERROR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_FATAL_ERROR&#160;&#160;&#160;-0x3000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A fatal error occured, eg the chain is too long or the vrfy callback failed. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00080">80</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga185bc7f27a2b1f7742537a2377c52ee3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga185bc7f27a2b1f7742537a2377c52ee3">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE&#160;&#160;&#160;-0x2080</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Unavailable feature, e.g. RSA hashing/encryption combination. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00061">61</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gad85d9c7aa5c30b9730297bef3386407c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad85d9c7aa5c30b9730297bef3386407c">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_FILE_IO_ERROR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_FILE_IO_ERROR&#160;&#160;&#160;-0x2900</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Read/write of file failed. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00078">78</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gae16cddbd42e08f6dd093cf4326e59413"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae16cddbd42e08f6dd093cf4326e59413">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_INVALID_ALG</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_INVALID_ALG&#160;&#160;&#160;-0x2300</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The algorithm tag or value is invalid. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00066">66</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gac36bf085ce8f7f57f039bda8828bd824"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac36bf085ce8f7f57f039bda8828bd824">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_INVALID_DATE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_INVALID_DATE&#160;&#160;&#160;-0x2400</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The date tag or value is invalid. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00068">68</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gaa0788dbf0325aea4ab566717514b4422"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa0788dbf0325aea4ab566717514b4422">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_INVALID_EXTENSIONS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_INVALID_EXTENSIONS&#160;&#160;&#160;-0x2500</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The extension tag or value is invalid. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00070">70</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga45b8366804b7e2cbf3e25011f054802c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga45b8366804b7e2cbf3e25011f054802c">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_INVALID_FORMAT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_INVALID_FORMAT&#160;&#160;&#160;-0x2180</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The CRT/CRL/CSR format is invalid, e.g. different type expected. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00063">63</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga8f61c2f303bf065af4f783e03f952ede"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8f61c2f303bf065af4f783e03f952ede">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_INVALID_NAME</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_INVALID_NAME&#160;&#160;&#160;-0x2380</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The name tag or value is invalid. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00067">67</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga8124a68edabf35ed9323880584128f16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8124a68edabf35ed9323880584128f16">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_INVALID_SERIAL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_INVALID_SERIAL&#160;&#160;&#160;-0x2280</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The serial tag or value is invalid. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00065">65</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga022c175386f082b4e056e6268ee68cab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga022c175386f082b4e056e6268ee68cab">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_INVALID_SIGNATURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_INVALID_SIGNATURE&#160;&#160;&#160;-0x2480</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The signature tag or value invalid. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00069">69</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga527608dc04b2c831fe5b161ec26aab76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga527608dc04b2c831fe5b161ec26aab76">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_INVALID_VERSION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_INVALID_VERSION&#160;&#160;&#160;-0x2200</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The CRT/CRL/CSR version element is invalid. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00064">64</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gac489ce5e8ba417bcd86012ebbb7f5044"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac489ce5e8ba417bcd86012ebbb7f5044">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_SIG_MISMATCH</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_SIG_MISMATCH&#160;&#160;&#160;-0x2680</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signature algorithms do not match. (see <code><a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a></code> sig_oid) </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00073">73</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gab4e8e2e41bfe62e969343efaa2784103"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab4e8e2e41bfe62e969343efaa2784103">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_UNKNOWN_OID</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_UNKNOWN_OID&#160;&#160;&#160;-0x2100</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Requested OID is unknown. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00062">62</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga488f8616b42eae6fe3fb9815d43c976f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga488f8616b42eae6fe3fb9815d43c976f">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG&#160;&#160;&#160;-0x2600</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signature algorithm (oid) is unsupported. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00072">72</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gab80a4eb806328731def21ec2ebcbc365"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab80a4eb806328731def21ec2ebcbc365">&#9670;&nbsp;</a></span>MBEDTLS_ERR_X509_UNKNOWN_VERSION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_X509_UNKNOWN_VERSION&#160;&#160;&#160;-0x2580</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>CRT/CRL/CSR has an unsupported version number. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00071">71</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gaef5f9a34b327eb79750ebc3779e98282"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaef5f9a34b327eb79750ebc3779e98282">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_BAD_KEY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_BAD_KEY&#160;&#160;&#160;0x010000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The certificate is signed with an unacceptable key (eg bad curve, RSA too short). </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00104">104</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga41b54b526c11bf51cc431ef1a151816d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga41b54b526c11bf51cc431ef1a151816d">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_BAD_MD</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_BAD_MD&#160;&#160;&#160;0x4000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The certificate is signed with an unacceptable hash. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00102">102</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga9332fa1e09a373cc56234525b14546c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9332fa1e09a373cc56234525b14546c4">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_BAD_PK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_BAD_PK&#160;&#160;&#160;0x8000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA). </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00103">103</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga6e71468985ebf243ca7cfce5c3dea881"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6e71468985ebf243ca7cfce5c3dea881">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_CN_MISMATCH</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_CN_MISMATCH&#160;&#160;&#160;0x04</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The certificate Common Name (CN) does not match with the expected CN. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00090">90</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga5f03158dcacc5914872e38c68231b642"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5f03158dcacc5914872e38c68231b642">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_EXPIRED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_EXPIRED&#160;&#160;&#160;0x01</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The certificate validity has expired. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00088">88</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gac3dab3183efdbca7e988916e7fc1a02a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac3dab3183efdbca7e988916e7fc1a02a">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_EXT_KEY_USAGE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_EXT_KEY_USAGE&#160;&#160;&#160;0x1000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Usage does not match the extendedKeyUsage extension. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00100">100</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gac769acbb18e53198ae2d2e63bd339cfa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac769acbb18e53198ae2d2e63bd339cfa">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_FUTURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_FUTURE&#160;&#160;&#160;0x0200</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The certificate validity starts in the future. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00097">97</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga28705c8c3091a013487df25842249c0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga28705c8c3091a013487df25842249c0f">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_KEY_USAGE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_KEY_USAGE&#160;&#160;&#160;0x0800</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Usage does not match the keyUsage extension. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00099">99</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga8bca03e3c2c89460bea17ab142b0b7ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8bca03e3c2c89460bea17ab142b0b7ab">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_MISSING</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_MISSING&#160;&#160;&#160;0x40</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Certificate was missing. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00094">94</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga0e5b1d4c9c1a1a3227238c82042c1d1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e5b1d4c9c1a1a3227238c82042c1d1b">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_NOT_TRUSTED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_NOT_TRUSTED&#160;&#160;&#160;0x08</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The certificate is not correctly signed by the trusted CA. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00091">91</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gaa383ae441177fa7a16fb2313bb48bb10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa383ae441177fa7a16fb2313bb48bb10">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_NS_CERT_TYPE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_NS_CERT_TYPE&#160;&#160;&#160;0x2000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Usage does not match the nsCertType extension. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00101">101</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga76bdd50937a671ef62474b7e38e23e02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga76bdd50937a671ef62474b7e38e23e02">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_OTHER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_OTHER&#160;&#160;&#160;0x0100</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Other reason (can be used by verify callback) </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00096">96</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gaddd96a9eb80fab17bce02d2a147ea504"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaddd96a9eb80fab17bce02d2a147ea504">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_REVOKED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_REVOKED&#160;&#160;&#160;0x02</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The certificate has been revoked (is on a CRL). </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00089">89</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga1b87b2e1d26077023adf2a5c65a76776"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1b87b2e1d26077023adf2a5c65a76776">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCERT_SKIP_VERIFY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCERT_SKIP_VERIFY&#160;&#160;&#160;0x80</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Certificate verification was skipped. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00095">95</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gac2947ead6fd1035296826110ca74a364"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac2947ead6fd1035296826110ca74a364">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCRL_BAD_KEY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCRL_BAD_KEY&#160;&#160;&#160;0x080000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The CRL is signed with an unacceptable key (eg bad curve, RSA too short). </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00107">107</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gad3f810fb74f94164185b88b90fffa329"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad3f810fb74f94164185b88b90fffa329">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCRL_BAD_MD</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCRL_BAD_MD&#160;&#160;&#160;0x020000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The CRL is signed with an unacceptable hash. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00105">105</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga182a6f1f465e566de7586e6ee8fa7c4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga182a6f1f465e566de7586e6ee8fa7c4e">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCRL_BAD_PK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCRL_BAD_PK&#160;&#160;&#160;0x040000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA). </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00106">106</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gaebccb1707af21f2d3d6610a7c6485f32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaebccb1707af21f2d3d6610a7c6485f32">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCRL_EXPIRED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCRL_EXPIRED&#160;&#160;&#160;0x20</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The CRL is expired. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00093">93</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gad93c0f614969729f7d13fb0a3acac68e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad93c0f614969729f7d13fb0a3acac68e">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCRL_FUTURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCRL_FUTURE&#160;&#160;&#160;0x0400</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The CRL is from the future </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00098">98</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gad1da8228ca957c2947fd329c32fc7ca4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad1da8228ca957c2947fd329c32fc7ca4">&#9670;&nbsp;</a></span>MBEDTLS_X509_BADCRL_NOT_TRUSTED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_BADCRL_NOT_TRUSTED&#160;&#160;&#160;0x10</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The CRL is not correctly signed by the trusted CA. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00092">92</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga8d124765addc200627de55f2018b1ed3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d124765addc200627de55f2018b1ed3">&#9670;&nbsp;</a></span>MBEDTLS_X509_CRT_VERSION_1</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_CRT_VERSION_1&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="x509__crt_8h_source.html#l00117">117</a> of file <a class="el" href="x509__crt_8h_source.html">x509_crt.h</a>.</p>

</div>
</div>
<a id="ga46a0b7f3a4c1f279f609fd8ea304c192"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga46a0b7f3a4c1f279f609fd8ea304c192">&#9670;&nbsp;</a></span>MBEDTLS_X509_CRT_VERSION_2</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_CRT_VERSION_2&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="x509__crt_8h_source.html#l00118">118</a> of file <a class="el" href="x509__crt_8h_source.html">x509_crt.h</a>.</p>

</div>
</div>
<a id="ga7c22a610222ea94e1faf96223bc5d9a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c22a610222ea94e1faf96223bc5d9a4">&#9670;&nbsp;</a></span>MBEDTLS_X509_CRT_VERSION_3</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_CRT_VERSION_3&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="x509__crt_8h_source.html#l00119">119</a> of file <a class="el" href="x509__crt_8h_source.html">x509_crt.h</a>.</p>

</div>
</div>
<a id="gaedcb73f1c615c266a348a0c62763c5de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaedcb73f1c615c266a348a0c62763c5de">&#9670;&nbsp;</a></span>MBEDTLS_X509_ID_FLAG</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_ID_FLAG</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">id</td><td>)</td>
          <td>&#160;&#160;&#160;( 1 &lt;&lt; ( id - 1 ) )</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Build flag from an algorithm/curve identifier (pk, md, ecp) Since 0 is always XXX_NONE, ignore it. </p>

<p class="definition">Definition at line <a class="el" href="x509__crt_8h_source.html#l00101">101</a> of file <a class="el" href="x509__crt_8h_source.html">x509_crt.h</a>.</p>

</div>
</div>
<a id="ga4ebc833300be4f784ac13ff0a38085ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4ebc833300be4f784ac13ff0a38085ce">&#9670;&nbsp;</a></span>MBEDTLS_X509_MAX_FILE_PATH_LEN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_MAX_FILE_PATH_LEN&#160;&#160;&#160;512</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="x509__crt_8h_source.html#l00125">125</a> of file <a class="el" href="x509__crt_8h_source.html">x509_crt.h</a>.</p>

</div>
</div>
<a id="gab98caf7dfede54b5c576b5a27a5c6a6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab98caf7dfede54b5c576b5a27a5c6a6a">&#9670;&nbsp;</a></span>MBEDTLS_X509_MAX_INTERMEDIATE_CA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_MAX_INTERMEDIATE_CA&#160;&#160;&#160;8</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Maximum number of intermediate CAs in a verification chain. That is, maximum length of the chain, excluding the end-entity certificate and the trusted root certificate.</p>
<p>Set this to a low value to prevent an adversary from making you waste resources verifying an overlong certificate chain. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00054">54</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga189113155d9c64d4b4255b16761377c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga189113155d9c64d4b4255b16761377c7">&#9670;&nbsp;</a></span>MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN&#160;&#160;&#160;32</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="x509__crt_8h_source.html#l00121">121</a> of file <a class="el" href="x509__crt_8h_source.html">x509_crt.h</a>.</p>

</div>
</div>
<a id="ga533580091501768fa25d4d682febbb08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga533580091501768fa25d4d682febbb08">&#9670;&nbsp;</a></span>MBEDTLS_X509_RFC5280_UTC_TIME_LEN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_X509_RFC5280_UTC_TIME_LEN&#160;&#160;&#160;15</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="x509__crt_8h_source.html#l00122">122</a> of file <a class="el" href="x509__crt_8h_source.html">x509_crt.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gaf25a97602f25027e160f22f6d5590636"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf25a97602f25027e160f22f6d5590636">&#9670;&nbsp;</a></span>mbedtls_x509_bitstring</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmbedtls__asn1__bitstring.html">mbedtls_asn1_bitstring</a> <a class="el" href="group__x509__module.html#gaf25a97602f25027e160f22f6d5590636">mbedtls_x509_bitstring</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Container for ASN1 bit strings. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00194">194</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga4d02c9e8e4e2934555e0d132cd2976dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4d02c9e8e4e2934555e0d132cd2976dc">&#9670;&nbsp;</a></span>mbedtls_x509_buf</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a> <a class="el" href="group__x509__module.html#ga4d02c9e8e4e2934555e0d132cd2976dc">mbedtls_x509_buf</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Type-length-value structure that allows for ASN1 using DER. </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00189">189</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga7957605a0ced963e12880ec9e19874fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7957605a0ced963e12880ec9e19874fc">&#9670;&nbsp;</a></span>mbedtls_x509_crl</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a>
 <a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Certificate revocation list structure. Every CRL may have multiple entries. </p>

</div>
</div>
<a id="ga1e0c6230061fd501f9d00bd1b09ade33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1e0c6230061fd501f9d00bd1b09ade33">&#9670;&nbsp;</a></span>mbedtls_x509_crl_entry</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structmbedtls__x509__crl__entry.html">mbedtls_x509_crl_entry</a>
 <a class="el" href="structmbedtls__x509__crl__entry.html">mbedtls_x509_crl_entry</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Certificate revocation list entry. Contains the CA-specific serial numbers and revocation dates. </p>

</div>
</div>
<a id="ga836544fec94d5bc02bc97aa87885b9d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga836544fec94d5bc02bc97aa87885b9d9">&#9670;&nbsp;</a></span>mbedtls_x509_crt</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a>
 <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Container for an X.509 certificate. The certificate may be chained. </p>

</div>
</div>
<a id="gae481b23df67001bdac96ef9c2ab3ef7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae481b23df67001bdac96ef9c2ab3ef7c">&#9670;&nbsp;</a></span>mbedtls_x509_csr</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a>
 <a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Certificate Signing Request (CSR) structure. </p>

</div>
</div>
<a id="ga2272228c7776102328df31623af3168c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2272228c7776102328df31623af3168c">&#9670;&nbsp;</a></span>mbedtls_x509_name</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> <a class="el" href="group__x509__module.html#ga2272228c7776102328df31623af3168c">mbedtls_x509_name</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Container for ASN1 named information objects. It allows for Relative Distinguished Names (e.g. cn=localhost,ou=code,etc.). </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00200">200</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="gabd52d60a09315854d9ef849d02154f35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabd52d60a09315854d9ef849d02154f35">&#9670;&nbsp;</a></span>mbedtls_x509_sequence</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmbedtls__asn1__sequence.html">mbedtls_asn1_sequence</a> <a class="el" href="group__x509__module.html#gabd52d60a09315854d9ef849d02154f35">mbedtls_x509_sequence</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Container for a sequence of ASN.1 items </p>

<p class="definition">Definition at line <a class="el" href="x509_8h_source.html#l00205">205</a> of file <a class="el" href="x509_8h_source.html">x509.h</a>.</p>

</div>
</div>
<a id="ga38827540a02fb2ddca08ec0917a8a41b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga38827540a02fb2ddca08ec0917a8a41b">&#9670;&nbsp;</a></span>mbedtls_x509_time</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structmbedtls__x509__time.html">mbedtls_x509_time</a>
 <a class="el" href="structmbedtls__x509__time.html">mbedtls_x509_time</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Container for date and time (precision in seconds). </p>

</div>
</div>
<a id="gacc3115587f8d882a7a137c38d6939e07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacc3115587f8d882a7a137c38d6939e07">&#9670;&nbsp;</a></span>mbedtls_x509write_cert</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structmbedtls__x509write__cert.html">mbedtls_x509write_cert</a>
 <a class="el" href="structmbedtls__x509write__cert.html">mbedtls_x509write_cert</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Container for writing a certificate (CRT) </p>

</div>
</div>
<a id="ga7b0b4f8c5cfd541ee20c53907edb636d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7b0b4f8c5cfd541ee20c53907edb636d">&#9670;&nbsp;</a></span>mbedtls_x509write_csr</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structmbedtls__x509write__csr.html">mbedtls_x509write_csr</a>
 <a class="el" href="structmbedtls__x509write__csr.html">mbedtls_x509write_csr</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Container for writing a CSR </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gae1bf556398cac1761aa2041908e9f619"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae1bf556398cac1761aa2041908e9f619">&#9670;&nbsp;</a></span>mbedtls_dhm_parse_dhm()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_dhm_parse_dhm </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__dhm__context.html">mbedtls_dhm_context</a> *&#160;</td>
          <td class="paramname"><em>dhm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>dhmin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>dhminlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function parses DHM parameters in PEM or DER format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dhm</td><td>The DHM context to initialize. </td></tr>
    <tr><td class="paramname">dhmin</td><td>The input buffer. </td></tr>
    <tr><td class="paramname">dhminlen</td><td>The size of the buffer, including the terminating null Byte for PEM data.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>0</code> on success, or a specific DHM or PEM error code on failure. </dd></dl>

</div>
</div>
<a id="gae2f53ca5e795b7e8674f092777a5a828"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae2f53ca5e795b7e8674f092777a5a828">&#9670;&nbsp;</a></span>mbedtls_dhm_parse_dhmfile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_dhm_parse_dhmfile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__dhm__context.html">mbedtls_dhm_context</a> *&#160;</td>
          <td class="paramname"><em>dhm</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>This function loads and parses DHM parameters from a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dhm</td><td>The DHM context to load the parameters to. </td></tr>
    <tr><td class="paramname">path</td><td>The filename to read the DHM parameters from.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>0</code> on success, or a specific DHM or PEM error code on failure. </dd></dl>

</div>
</div>
<a id="gaeb19c3326889f9e493fbd605c1113b96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeb19c3326889f9e493fbd605c1113b96">&#9670;&nbsp;</a></span>mbedtls_x509_crl_free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_x509_crl_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crl.html">mbedtls_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 class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crl</td><td>CRL chain to free </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga35898e101f5039c6db6b930da9892366"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga35898e101f5039c6db6b930da9892366">&#9670;&nbsp;</a></span>mbedtls_x509_crl_info()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_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="structmbedtls__x509__crl.html">mbedtls_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 class="params"><dt>Parameters</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">crl</td><td>The X509 CRL to represent</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The length of the string written (not including the terminated nul byte), or a negative error code. </dd></dl>

</div>
</div>
<a id="ga8513a192e281217802837571da98e218"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8513a192e281217802837571da98e218">&#9670;&nbsp;</a></span>mbedtls_x509_crl_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_x509_crl_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crl.html">mbedtls_x509_crl</a> *&#160;</td>
          <td class="paramname"><em>crl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a CRL (chain) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crl</td><td>CRL chain to initialize </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gadfce4fc5f5af62e371695e74c5b67d70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadfce4fc5f5af62e371695e74c5b67d70">&#9670;&nbsp;</a></span>mbedtls_x509_crl_parse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crl_parse </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crl.html">mbedtls_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">size_t&#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 append them to the chained list. </p>
<dl class="section note"><dt>Note</dt><dd>Mutliple CRLs are accepted only if using PEM format</dd></dl>
<dl class="params"><dt>Parameters</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 in PEM or DER format </td></tr>
    <tr><td class="paramname">buflen</td><td>size of the buffer (including the terminating null byte for PEM data)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a specific X509 or PEM error code </dd></dl>

</div>
</div>
<a id="ga29ab5f1216a727b334ee26cce9f5d4b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga29ab5f1216a727b334ee26cce9f5d4b5">&#9670;&nbsp;</a></span>mbedtls_x509_crl_parse_der()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crl_parse_der </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crl.html">mbedtls_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">size_t&#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 a DER-encoded CRL and append it to the chained list. </p>
<dl class="params"><dt>Parameters</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 in DER format </td></tr>
    <tr><td class="paramname">buflen</td><td>size of the buffer (including the terminating null byte for PEM data)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a specific X509 or PEM error code </dd></dl>

</div>
</div>
<a id="ga8e096827f1240b8f8bc15d6a83593f22"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8e096827f1240b8f8bc15d6a83593f22">&#9670;&nbsp;</a></span>mbedtls_x509_crl_parse_file()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crl_parse_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crl.html">mbedtls_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 append them to the chained list. </p>
<dl class="section note"><dt>Note</dt><dd>Mutliple CRLs are accepted only if using PEM format</dd></dl>
<dl class="params"><dt>Parameters</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 (in PEM or DER encoding)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a specific X509 or PEM error code </dd></dl>

</div>
</div>
<a id="gad21c0e75a3fdbeb1f65e4d339e479df3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad21c0e75a3fdbeb1f65e4d339e479df3">&#9670;&nbsp;</a></span>mbedtls_x509_crt_check_extended_key_usage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_check_extended_key_usage </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *&#160;</td>
          <td class="paramname"><em>crt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>usage_oid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>usage_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check usage of certificate against extendedKeyUsage. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crt</td><td>Leaf certificate used. </td></tr>
    <tr><td class="paramname">usage_oid</td><td>Intended usage (eg MBEDTLS_OID_SERVER_AUTH or MBEDTLS_OID_CLIENT_AUTH). </td></tr>
    <tr><td class="paramname">usage_len</td><td>Length of usage_oid (eg given by <a class="el" href="asn1_8h.html#ac2f2e00874ca486c912c33bb4f7bb16a">MBEDTLS_OID_SIZE()</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if this use of the certificate is allowed, MBEDTLS_ERR_X509_BAD_INPUT_DATA if not.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Usually only makes sense on leaf certificates. </dd></dl>

</div>
</div>
<a id="ga0ab7857ffd82467207e718bb9f0131a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0ab7857ffd82467207e718bb9f0131a2">&#9670;&nbsp;</a></span>mbedtls_x509_crt_check_key_usage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_check_key_usage </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *&#160;</td>
          <td class="paramname"><em>crt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>usage</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check usage of certificate against keyUsage extension. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crt</td><td>Leaf certificate used. </td></tr>
    <tr><td class="paramname">usage</td><td>Intended usage(s) (eg MBEDTLS_X509_KU_KEY_ENCIPHERMENT before using the certificate to perform an RSA key exchange).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Except for decipherOnly and encipherOnly, a bit set in the usage argument means this bit MUST be set in the certificate. For decipherOnly and encipherOnly, it means that bit MAY be set.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 is these uses of the certificate are allowed, MBEDTLS_ERR_X509_BAD_INPUT_DATA if the keyUsage extension is present but does not match the usage argument.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>You should only call this function on leaf certificates, on (intermediate) CAs the keyUsage extension is automatically checked by <code><a class="el" href="group__x509__module.html#ga98ed4504e4f832b735a230acf54fcde3" title="Verify the certificate signature. ">mbedtls_x509_crt_verify()</a></code>. </dd></dl>

</div>
</div>
<a id="gab33c1e4e20bea7ce536119f54a113c6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab33c1e4e20bea7ce536119f54a113c6b">&#9670;&nbsp;</a></span>mbedtls_x509_crt_free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_x509_crt_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</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 class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crt</td><td>Certificate chain to free </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gabaf30f2269fc3b6608b25871f9d09da6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabaf30f2269fc3b6608b25871f9d09da6">&#9670;&nbsp;</a></span>mbedtls_x509_crt_info()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_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="structmbedtls__x509__crt.html">mbedtls_x509_crt</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 class="params"><dt>Parameters</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="section return"><dt>Returns</dt><dd>The length of the string written (not including the terminated nul byte), or a negative error code. </dd></dl>

</div>
</div>
<a id="ga016dd06bc770e77b84005f305df20ed1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga016dd06bc770e77b84005f305df20ed1">&#9670;&nbsp;</a></span>mbedtls_x509_crt_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_x509_crt_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *&#160;</td>
          <td class="paramname"><em>crt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a certificate (chain) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crt</td><td>Certificate chain to initialize </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga0dc256a70f90cb68002d53bafffab232"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0dc256a70f90cb68002d53bafffab232">&#9670;&nbsp;</a></span>mbedtls_x509_crt_is_revoked()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_is_revoked </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *&#160;</td>
          <td class="paramname"><em>crt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__x509__crl.html">mbedtls_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>Verify the certificate revocation status. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crt</td><td>a certificate to be verified </td></tr>
    <tr><td class="paramname">crl</td><td>the CRL to verify against</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if the certificate is revoked, 0 otherwise </dd></dl>

</div>
</div>
<a id="ga033567483649030f7f859db4f4cb7e14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga033567483649030f7f859db4f4cb7e14">&#9670;&nbsp;</a></span>mbedtls_x509_crt_parse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_parse </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</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">size_t&#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. Parses permissively. If some certificates can be parsed, the result is the number of failed certificates it encountered. If none complete correctly, the first error is returned. </p>
<dl class="params"><dt>Parameters</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 in PEM or DER format </td></tr>
    <tr><td class="paramname">buflen</td><td>size of the buffer (including the terminating null byte for PEM data)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if all certificates parsed successfully, a positive number if partly successful or a specific X509 or PEM error code </dd></dl>

</div>
</div>
<a id="ga003c2483a2691e025641fa9d68d4a96a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga003c2483a2691e025641fa9d68d4a96a">&#9670;&nbsp;</a></span>mbedtls_x509_crt_parse_der()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_parse_der </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</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">size_t&#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 a single DER formatted certificate and add it to the chained list. </p>
<dl class="params"><dt>Parameters</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 DER data </td></tr>
    <tr><td class="paramname">buflen</td><td>size of the buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a specific X509 or PEM error code </dd></dl>

</div>
</div>
<a id="gad4da63133d3590aa311488497d4c38ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad4da63133d3590aa311488497d4c38ec">&#9670;&nbsp;</a></span>mbedtls_x509_crt_parse_file()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_parse_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</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. Parses permissively. If some certificates can be parsed, the result is the number of failed certificates it encountered. If none complete correctly, the first error is returned. </p>
<dl class="params"><dt>Parameters</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="section return"><dt>Returns</dt><dd>0 if all certificates parsed successfully, a positive number if partly successful or a specific X509 or PEM error code </dd></dl>

</div>
</div>
<a id="ga571fc89b9f3217ab3dd67bd7af905066"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga571fc89b9f3217ab3dd67bd7af905066">&#9670;&nbsp;</a></span>mbedtls_x509_crt_parse_path()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_parse_path </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</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 certificate files from a path and add them to the chained list. Parses permissively. If some certificates can be parsed, the result is the number of failed certificates it encountered. If none complete correctly, the first error is returned. </p>
<dl class="params"><dt>Parameters</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>directory / folder to read the certificate files from</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if all certificates parsed successfully, a positive number if partly successful or a specific X509 or PEM error code </dd></dl>

</div>
</div>
<a id="ga98ed4504e4f832b735a230acf54fcde3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga98ed4504e4f832b735a230acf54fcde3">&#9670;&nbsp;</a></span>mbedtls_x509_crt_verify()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_verify </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</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="structmbedtls__x509__crt.html">mbedtls_x509_crt</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="structmbedtls__x509__crl.html">mbedtls_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">uint32_t *&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *, <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *, int, uint32_t *)&#160;</td>
          <td class="paramname"><em>f_vrfy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p_vrfy</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>
<p>The verify callback is a user-supplied callback that can clear / modify / add flags for a certificate. If set, the verification callback is called for each certificate in the chain (from the trust-ca down to the presented crt). The parameters for the callback are: (void *parameter, <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *crt, int certificate_depth, int *flags). With the flags representing current flags for that specific certificate and the certificate depth from the bottom (Peer cert depth = 0).</p>
<p>All flags left after returning from the callback are also returned to the application. The function should return 0 for anything (including invalid certificates) other than fatal error, as a non-zero return code immediately aborts the verification process. For fatal errors, a specific error code should be used (different from MBEDTLS_ERR_X509_CERT_VERIFY_FAILED which should not be returned at this point), or MBEDTLS_ERR_X509_FATAL_ERROR can be used if no better code is available.</p>
<dl class="section note"><dt>Note</dt><dd>In case verification failed, the results can be displayed using <code><a class="el" href="group__x509__module.html#gae88f1d8e6696eb2beeffe0a708219e6b" title="Returns an informational string about the verification status of a certificate. ">mbedtls_x509_crt_verify_info()</a></code> </dd>
<dd>
Same as <code><a class="el" href="group__x509__module.html#gaf044a51e5b5bc854bf12aeeccb440e55" title="Verify the certificate signature according to profile. ">mbedtls_x509_crt_verify_with_profile()</a></code> with the default security profile.</dd>
<dd>
It is your responsibility to provide up-to-date CRLs for all trusted CAs. If no CRL is provided for the CA that was used to sign the certificate, CRL verification is skipped silently, that is <em>without</em> setting any flag.</dd>
<dd>
The <code>trust_ca</code> list can contain two types of certificates: (1) those of trusted root CAs, so that certificates chaining up to those CAs will be trusted, and (2) self-signed end-entity certificates to be trusted (for specific peers you know) - in that case, the self-signed certificate doesn't need to have the CA bit set.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crt</td><td>a certificate (chain) to be verified </td></tr>
    <tr><td class="paramname">trust_ca</td><td>the list of trusted CAs (see note above) </td></tr>
    <tr><td class="paramname">ca_crl</td><td>the list of CRLs for trusted CAs (see note above) </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>
    <tr><td class="paramname">f_vrfy</td><td>verification function </td></tr>
    <tr><td class="paramname">p_vrfy</td><td>verification parameter</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 (and flags set to 0) if the chain was verified and valid, MBEDTLS_ERR_X509_CERT_VERIFY_FAILED if the chain was verified but found to be invalid, in which case *flags will have one or more MBEDTLS_X509_BADCERT_XXX or MBEDTLS_X509_BADCRL_XXX flags set, or another error (and flags set to 0xffffffff) in case of a fatal error encountered during the verification process. </dd></dl>

</div>
</div>
<a id="gae88f1d8e6696eb2beeffe0a708219e6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae88f1d8e6696eb2beeffe0a708219e6b">&#9670;&nbsp;</a></span>mbedtls_x509_crt_verify_info()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_verify_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">uint32_t&#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>Returns an informational string about the verification status of a certificate. </p>
<dl class="params"><dt>Parameters</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">flags</td><td>Verification flags created by <a class="el" href="group__x509__module.html#ga98ed4504e4f832b735a230acf54fcde3" title="Verify the certificate signature. ">mbedtls_x509_crt_verify()</a></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The length of the string written (not including the terminated nul byte), or a negative error code. </dd></dl>

</div>
</div>
<a id="gaf044a51e5b5bc854bf12aeeccb440e55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf044a51e5b5bc854bf12aeeccb440e55">&#9670;&nbsp;</a></span>mbedtls_x509_crt_verify_with_profile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_crt_verify_with_profile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</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="structmbedtls__x509__crt.html">mbedtls_x509_crt</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="structmbedtls__x509__crl.html">mbedtls_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 <a class="el" href="structmbedtls__x509__crt__profile.html">mbedtls_x509_crt_profile</a> *&#160;</td>
          <td class="paramname"><em>profile</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">uint32_t *&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *, <a class="el" href="structmbedtls__x509__crt.html">mbedtls_x509_crt</a> *, int, uint32_t *)&#160;</td>
          <td class="paramname"><em>f_vrfy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p_vrfy</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Verify the certificate signature according to profile. </p>
<dl class="section note"><dt>Note</dt><dd>Same as <code><a class="el" href="group__x509__module.html#ga98ed4504e4f832b735a230acf54fcde3" title="Verify the certificate signature. ">mbedtls_x509_crt_verify()</a></code>, but with explicit security profile.</dd>
<dd>
The restrictions on keys (RSA minimum size, allowed curves for ECDSA) apply to all certificates: trusted root, intermediate CAs if any, and end entity certificate.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crt</td><td>a certificate (chain) to be verified </td></tr>
    <tr><td class="paramname">trust_ca</td><td>the list of trusted CAs </td></tr>
    <tr><td class="paramname">ca_crl</td><td>the list of CRLs for trusted CAs </td></tr>
    <tr><td class="paramname">profile</td><td>security profile for verification </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>
    <tr><td class="paramname">f_vrfy</td><td>verification function </td></tr>
    <tr><td class="paramname">p_vrfy</td><td>verification parameter</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful or MBEDTLS_ERR_X509_CERT_VERIFY_FAILED in which case *flags will have one or more MBEDTLS_X509_BADCERT_XXX or MBEDTLS_X509_BADCRL_XXX flags set, or another error in case of a fatal error encountered during the verification process. </dd></dl>

</div>
</div>
<a id="gac2139becff64aa7294ecad4f40767a84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac2139becff64aa7294ecad4f40767a84">&#9670;&nbsp;</a></span>mbedtls_x509_csr_free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_x509_csr_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *&#160;</td>
          <td class="paramname"><em>csr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unallocate all CSR data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">csr</td><td>CSR to free </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaeec330c8cb351adc2870f4f088f36fdc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeec330c8cb351adc2870f4f088f36fdc">&#9670;&nbsp;</a></span>mbedtls_x509_csr_info()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_csr_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="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *&#160;</td>
          <td class="paramname"><em>csr</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 CSR. </p>
<dl class="params"><dt>Parameters</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">csr</td><td>The X509 CSR to represent</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The length of the string written (not including the terminated nul byte), or a negative error code. </dd></dl>

</div>
</div>
<a id="ga984db025f6953ea61be7dfca2d928f37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga984db025f6953ea61be7dfca2d928f37">&#9670;&nbsp;</a></span>mbedtls_x509_csr_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_x509_csr_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *&#160;</td>
          <td class="paramname"><em>csr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a CSR. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">csr</td><td>CSR to initialize </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga53012fb8859f4835ccfb0a5e359b3176"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga53012fb8859f4835ccfb0a5e359b3176">&#9670;&nbsp;</a></span>mbedtls_x509_csr_parse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_csr_parse </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *&#160;</td>
          <td class="paramname"><em>csr</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">size_t&#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>Load a Certificate Signing Request (CSR), DER or PEM format. </p>
<dl class="section note"><dt>Note</dt><dd>See notes for <code><a class="el" href="group__x509__module.html#ga4c58fa3804ea9feb1acf745221f17208" title="Load a Certificate Signing Request (CSR) in DER format. ">mbedtls_x509_csr_parse_der()</a></code> </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">csr</td><td>CSR context to fill </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 (including the terminating null byte for PEM data)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a specific X509 or PEM error code </dd></dl>

</div>
</div>
<a id="ga4c58fa3804ea9feb1acf745221f17208"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4c58fa3804ea9feb1acf745221f17208">&#9670;&nbsp;</a></span>mbedtls_x509_csr_parse_der()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_csr_parse_der </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *&#160;</td>
          <td class="paramname"><em>csr</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">size_t&#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>Load a Certificate Signing Request (CSR) in DER format. </p>
<dl class="section note"><dt>Note</dt><dd>CSR attributes (if any) are currently silently ignored.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">csr</td><td>CSR context to fill </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="section return"><dt>Returns</dt><dd>0 if successful, or a specific X509 error code </dd></dl>

</div>
</div>
<a id="gaf49db7323eee45d9649600de18d715f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf49db7323eee45d9649600de18d715f8">&#9670;&nbsp;</a></span>mbedtls_x509_csr_parse_file()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_x509_csr_parse_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__x509__csr.html">mbedtls_x509_csr</a> *&#160;</td>
          <td class="paramname"><em>csr</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 a Certificate Signing Request (CSR) </p>
<dl class="section note"><dt>Note</dt><dd>See notes for <code><a class="el" href="group__x509__module.html#ga53012fb8859f4835ccfb0a5e359b3176" title="Load a Certificate Signing Request (CSR), DER or PEM format. ">mbedtls_x509_csr_parse()</a></code> </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">csr</td><td>CSR context to fill </td></tr>
    <tr><td class="paramname">path</td><td>filename to read the CSR from</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a specific X509 or PEM error code </dd></dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="ga9cd2de10ffeff0f339abcc1ba7e26fdf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9cd2de10ffeff0f339abcc1ba7e26fdf">&#9670;&nbsp;</a></span>mbedtls_x509_crt_profile_default</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmbedtls__x509__crt__profile.html">mbedtls_x509_crt_profile</a> mbedtls_x509_crt_profile_default</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Default security profile. Should provide a good balance between security and compatibility with current deployments. </p>

</div>
</div>
<a id="ga8ab1f8a044fd25f76ecb4ba15c6d5bcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8ab1f8a044fd25f76ecb4ba15c6d5bcd">&#9670;&nbsp;</a></span>mbedtls_x509_crt_profile_next</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmbedtls__x509__crt__profile.html">mbedtls_x509_crt_profile</a> mbedtls_x509_crt_profile_next</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Expected next default profile. Recommended for new deployments. Currently targets a 128-bit security level, except for RSA-2048. </p>

</div>
</div>
<a id="gaf09067a39129236125e353a68ceb45d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf09067a39129236125e353a68ceb45d6">&#9670;&nbsp;</a></span>mbedtls_x509_crt_profile_suiteb</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmbedtls__x509__crt__profile.html">mbedtls_x509_crt_profile</a> mbedtls_x509_crt_profile_suiteb</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>NSA Suite B profile. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 8 2018 21:08:42 for mbed TLS v2.7.3 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>