<!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.8: asn1.h File Reference</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.8 </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 id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_b4d146e9a6d8dd56ed4afb2480a97fd3.html">mbedtls</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Macros</a> </div> <div class="headertitle"> <div class="title">asn1.h File Reference</div> </div> </div><!--header--> <div class="contents"> <p>Generic ASN.1 parsing. <a href="#details">More...</a></p> <div class="textblock"><code>#include "<a class="el" href="config_8h_source.html">config.h</a>"</code><br /> <code>#include <stddef.h></code><br /> <code>#include "<a class="el" href="bignum_8h_source.html">bignum.h</a>"</code><br /> </div><div class="textblock"><div class="dynheader"> Include dependency graph for asn1.h:</div> <div class="dyncontent"> <div class="center"><img src="asn1_8h__incl.png" border="0" usemap="#asn1_8h" alt=""/></div> <map name="asn1_8h" id="asn1_8h"> <area shape="rect" id="node2" href="config_8h.html" title="Configuration options (set of defines) " alt="" coords="35,155,138,181"/> <area shape="rect" id="node6" href="bignum_8h.html" title="Multi-precision integer library. " alt="" coords="231,80,334,107"/> <area shape="rect" id="node3" href="check__config_8h.html" title="Consistency checks for configuration options. " alt="" coords="5,229,168,256"/> </map> </div> </div><div class="textblock"><div class="dynheader"> This graph shows which files directly or indirectly include this file:</div> <div class="dyncontent"> <div class="center"><img src="asn1_8h__dep__incl.png" border="0" usemap="#asn1_8hdep" alt=""/></div> <map name="asn1_8hdep" id="asn1_8hdep"> <area shape="rect" id="node2" href="asn1write_8h.html" title="ASN.1 buffer writing functionality. " alt="" coords="363,80,495,107"/> <area shape="rect" id="node3" href="x509_8h.html" title="X.509 generic defines and structures. " alt="" coords="519,80,602,107"/> <area shape="rect" id="node13" href="oid_8h.html" title="Object Identifier (OID) database. " alt="" coords="646,155,718,181"/> <area shape="rect" id="node15" href="pkcs12_8h.html" title="PKCS#12 Personal Information Exchange Syntax. " alt="" coords="677,80,780,107"/> <area shape="rect" id="node16" href="pkcs5_8h.html" title="PKCS#5 functions. " alt="" coords="804,80,896,107"/> <area shape="rect" id="node4" href="x509__crt_8h.html" title="X.509 certificate parsing and writing. " alt="" coords="254,229,377,256"/> <area shape="rect" id="node12" href="x509__crl_8h.html" title="X.509 certificate revocation list parsing. " alt="" coords="353,155,475,181"/> <area shape="rect" id="node14" href="x509__csr_8h.html" title="X.509 certificate signing request parsing and writing. " alt="" coords="499,155,622,181"/> <area shape="rect" id="node5" href="ssl_8h.html" title="SSL/TLS functions. " alt="" coords="329,304,401,331"/> <area shape="rect" id="node6" href="debug_8h.html" title="Functions for controlling and providing debug output from the library. " alt="" coords="5,379,97,405"/> <area shape="rect" id="node7" href="net__sockets_8h.html" title="Network communication functions. " alt="" coords="122,379,274,405"/> <area shape="rect" id="node9" href="ssl__cache_8h.html" title="SSL session cache implementation. " alt="" coords="299,379,431,405"/> <area shape="rect" id="node10" href="ssl__cookie_8h.html" title="DTLS cookie callbacks implementation. " alt="" coords="455,379,597,405"/> <area shape="rect" id="node11" href="ssl__ticket_8h.html" title="TLS server ticket callbacks implementation. " alt="" coords="621,379,764,405"/> <area shape="rect" id="node8" href="net_8h.html" title="Deprecated header file that includes net_sockets.h. " alt="" coords="162,453,234,480"/> </map> </div> </div> <p><a href="asn1_8h_source.html">Go to the source code of this file.</a></p> <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__asn1__bitstring.html">mbedtls_asn1_bitstring</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__asn1__sequence.html">mbedtls_asn1_sequence</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </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:ac2f2e00874ca486c912c33bb4f7bb16a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#ac2f2e00874ca486c912c33bb4f7bb16a">MBEDTLS_OID_SIZE</a>(x)   (sizeof(x) - 1)</td></tr> <tr class="separator:ac2f2e00874ca486c912c33bb4f7bb16a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0b81f225b3551ec7c4da69b2d183d10b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#a0b81f225b3551ec7c4da69b2d183d10b">MBEDTLS_OID_CMP</a>(oid_str, oid_buf)</td></tr> <tr class="separator:a0b81f225b3551ec7c4da69b2d183d10b"><td class="memSeparator" colspan="2"> </td></tr> <tr><td colspan="2"><div class="groupHeader">ASN1 Error codes</div></td></tr> <tr><td colspan="2"><div class="groupText"><p>These error codes are OR'ed to X509 error codes for higher error granularity. ASN1 is a standard to specify data structures. </p> </div></td></tr> <tr class="memitem:ga284c12cf03a4ffeee89a63750f00dfdd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga284c12cf03a4ffeee89a63750f00dfdd">MBEDTLS_ERR_ASN1_OUT_OF_DATA</a>   -0x0060</td></tr> <tr class="separator:ga284c12cf03a4ffeee89a63750f00dfdd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab055945fda47ad0e16dc59f8c5ecb86e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gab055945fda47ad0e16dc59f8c5ecb86e">MBEDTLS_ERR_ASN1_UNEXPECTED_TAG</a>   -0x0062</td></tr> <tr class="separator:gab055945fda47ad0e16dc59f8c5ecb86e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0ebe8e0a4894533db505303504eea59b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga0ebe8e0a4894533db505303504eea59b">MBEDTLS_ERR_ASN1_INVALID_LENGTH</a>   -0x0064</td></tr> <tr class="separator:ga0ebe8e0a4894533db505303504eea59b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gacf6fad8d80fa050c3463539412674a20"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gacf6fad8d80fa050c3463539412674a20">MBEDTLS_ERR_ASN1_LENGTH_MISMATCH</a>   -0x0066</td></tr> <tr class="separator:gacf6fad8d80fa050c3463539412674a20"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9ac36bf8c63a9968afe1d35d0569e4d8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga9ac36bf8c63a9968afe1d35d0569e4d8">MBEDTLS_ERR_ASN1_INVALID_DATA</a>   -0x0068</td></tr> <tr class="separator:ga9ac36bf8c63a9968afe1d35d0569e4d8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab7d40360e48e414ffa1a4df1961723d2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gab7d40360e48e414ffa1a4df1961723d2">MBEDTLS_ERR_ASN1_ALLOC_FAILED</a>   -0x006A</td></tr> <tr class="separator:gab7d40360e48e414ffa1a4df1961723d2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf9bf64017ed866c846b506e80dc15e94"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gaf9bf64017ed866c846b506e80dc15e94">MBEDTLS_ERR_ASN1_BUF_TOO_SMALL</a>   -0x006C</td></tr> <tr class="separator:gaf9bf64017ed866c846b506e80dc15e94"><td class="memSeparator" colspan="2"> </td></tr> <tr><td colspan="2"><div class="groupHeader">DER constants</div></td></tr> <tr><td colspan="2"><div class="groupText"><p>These constants comply with the DER encoded ASN.1 type tags. DER encoding uses hexadecimal representation. An example DER sequence is:<br /> </p><ul> <li>0x02 – tag indicating INTEGER</li> <li>0x01 – length in octets</li> <li>0x05 – value Such sequences are typically read into <code><a class="el" href="group__x509__module.html#ga4d02c9e8e4e2934555e0d132cd2976dc">mbedtls_x509_buf</a></code>. </li> </ul> </div></td></tr> <tr class="memitem:ga1382980a474a765365d8f5c7bd63795a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga1382980a474a765365d8f5c7bd63795a">MBEDTLS_ASN1_BOOLEAN</a>   0x01</td></tr> <tr class="separator:ga1382980a474a765365d8f5c7bd63795a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6e8614f8937956c294fe791bc5ac6a7c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga6e8614f8937956c294fe791bc5ac6a7c">MBEDTLS_ASN1_INTEGER</a>   0x02</td></tr> <tr class="separator:ga6e8614f8937956c294fe791bc5ac6a7c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafd5c5ecc822b7e2f4d2e64bf388fc559"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gafd5c5ecc822b7e2f4d2e64bf388fc559">MBEDTLS_ASN1_BIT_STRING</a>   0x03</td></tr> <tr class="separator:gafd5c5ecc822b7e2f4d2e64bf388fc559"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga080d1f82b0996a63c561541eb22a7d0f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga080d1f82b0996a63c561541eb22a7d0f">MBEDTLS_ASN1_OCTET_STRING</a>   0x04</td></tr> <tr class="separator:ga080d1f82b0996a63c561541eb22a7d0f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae26e36d787617e0b2dd067ccc342db0d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gae26e36d787617e0b2dd067ccc342db0d">MBEDTLS_ASN1_NULL</a>   0x05</td></tr> <tr class="separator:gae26e36d787617e0b2dd067ccc342db0d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad87ad0570a31add4ecac6cc3694ca79a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gad87ad0570a31add4ecac6cc3694ca79a">MBEDTLS_ASN1_OID</a>   0x06</td></tr> <tr class="separator:gad87ad0570a31add4ecac6cc3694ca79a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafc28060cb0e9b2be4f0960ad345a2e42"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gafc28060cb0e9b2be4f0960ad345a2e42">MBEDTLS_ASN1_UTF8_STRING</a>   0x0C</td></tr> <tr class="separator:gafc28060cb0e9b2be4f0960ad345a2e42"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga64ce838eb4418e69fe9aa251436203b3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga64ce838eb4418e69fe9aa251436203b3">MBEDTLS_ASN1_SEQUENCE</a>   0x10</td></tr> <tr class="separator:ga64ce838eb4418e69fe9aa251436203b3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga67afaa83253889dacb9fcb47062162c5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga67afaa83253889dacb9fcb47062162c5">MBEDTLS_ASN1_SET</a>   0x11</td></tr> <tr class="separator:ga67afaa83253889dacb9fcb47062162c5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga57f497984e573597e1ed100afcc3f965"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga57f497984e573597e1ed100afcc3f965">MBEDTLS_ASN1_PRINTABLE_STRING</a>   0x13</td></tr> <tr class="separator:ga57f497984e573597e1ed100afcc3f965"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gabe4ca1599521c0a3b4c54391906c2083"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gabe4ca1599521c0a3b4c54391906c2083">MBEDTLS_ASN1_T61_STRING</a>   0x14</td></tr> <tr class="separator:gabe4ca1599521c0a3b4c54391906c2083"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga30d5d0f805af50deb5820e741a53e481"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga30d5d0f805af50deb5820e741a53e481">MBEDTLS_ASN1_IA5_STRING</a>   0x16</td></tr> <tr class="separator:ga30d5d0f805af50deb5820e741a53e481"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac4e932ef9cdf9fa9b8fb152357c6ec64"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gac4e932ef9cdf9fa9b8fb152357c6ec64">MBEDTLS_ASN1_UTC_TIME</a>   0x17</td></tr> <tr class="separator:gac4e932ef9cdf9fa9b8fb152357c6ec64"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga29f746333b11a4d9e0b7624dcd982fdb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga29f746333b11a4d9e0b7624dcd982fdb">MBEDTLS_ASN1_GENERALIZED_TIME</a>   0x18</td></tr> <tr class="separator:ga29f746333b11a4d9e0b7624dcd982fdb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gacdbc7c6bcf1b8eb158a52ed773f3cdf3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gacdbc7c6bcf1b8eb158a52ed773f3cdf3">MBEDTLS_ASN1_UNIVERSAL_STRING</a>   0x1C</td></tr> <tr class="separator:gacdbc7c6bcf1b8eb158a52ed773f3cdf3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga577f12d1a059eb52928614c50f2bb0d8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga577f12d1a059eb52928614c50f2bb0d8">MBEDTLS_ASN1_BMP_STRING</a>   0x1E</td></tr> <tr class="separator:ga577f12d1a059eb52928614c50f2bb0d8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga800aec91d6d124d917bb2707b246c551"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga800aec91d6d124d917bb2707b246c551">MBEDTLS_ASN1_PRIMITIVE</a>   0x00</td></tr> <tr class="separator:ga800aec91d6d124d917bb2707b246c551"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8d855bf93e7f26e7c0c9c70af7f04d8e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga8d855bf93e7f26e7c0c9c70af7f04d8e">MBEDTLS_ASN1_CONSTRUCTED</a>   0x20</td></tr> <tr class="separator:ga8d855bf93e7f26e7c0c9c70af7f04d8e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8d78fbb123ee982c80d8020050bf86e0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga8d78fbb123ee982c80d8020050bf86e0">MBEDTLS_ASN1_CONTEXT_SPECIFIC</a>   0x80</td></tr> <tr class="separator:ga8d78fbb123ee982c80d8020050bf86e0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga01a2dcbe2148d903c4bc6eaad4dbcd3d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga01a2dcbe2148d903c4bc6eaad4dbcd3d">MBEDTLS_ASN1_TAG_CLASS_MASK</a>   0xC0</td></tr> <tr class="separator:ga01a2dcbe2148d903c4bc6eaad4dbcd3d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5994a5ddfb487f14d03d5b61e335e9cc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#ga5994a5ddfb487f14d03d5b61e335e9cc">MBEDTLS_ASN1_TAG_PC_MASK</a>   0x20</td></tr> <tr class="separator:ga5994a5ddfb487f14d03d5b61e335e9cc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa2a3c5289c11edb569b306df3411ff3b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__asn1__module.html#gaa2a3c5289c11edb569b306df3411ff3b">MBEDTLS_ASN1_TAG_VALUE_MASK</a>   0x1F</td></tr> <tr class="separator:gaa2a3c5289c11edb569b306df3411ff3b"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a> Functions to parse ASN.1 data structures</h2></td></tr> <tr class="memitem:a92008d574dc457ec6c925ef29631545b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#a92008d574dc457ec6c925ef29631545b">mbedtls_asn1_buf</a></td></tr> <tr class="separator:a92008d574dc457ec6c925ef29631545b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adfc9b9fed6d69849942d4a63ece7513d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__asn1__bitstring.html">mbedtls_asn1_bitstring</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#adfc9b9fed6d69849942d4a63ece7513d">mbedtls_asn1_bitstring</a></td></tr> <tr class="separator:adfc9b9fed6d69849942d4a63ece7513d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a21302e30db75b1b5e3387b16958080bf"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__asn1__sequence.html">mbedtls_asn1_sequence</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#a21302e30db75b1b5e3387b16958080bf">mbedtls_asn1_sequence</a></td></tr> <tr class="separator:a21302e30db75b1b5e3387b16958080bf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3f3ca4991620a3ab05d747d00a6cb70e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#a3f3ca4991620a3ab05d747d00a6cb70e">mbedtls_asn1_named_data</a></td></tr> <tr class="separator:a3f3ca4991620a3ab05d747d00a6cb70e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad45c1d0ed3694fe903342cb32647bfb1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#ad45c1d0ed3694fe903342cb32647bfb1">mbedtls_asn1_get_len</a> (unsigned char **p, const unsigned char *end, size_t *len)</td></tr> <tr class="memdesc:ad45c1d0ed3694fe903342cb32647bfb1"><td class="mdescLeft"> </td><td class="mdescRight">Get the length of an ASN.1 element. Updates the pointer to immediately behind the length. <a href="#ad45c1d0ed3694fe903342cb32647bfb1">More...</a><br /></td></tr> <tr class="separator:ad45c1d0ed3694fe903342cb32647bfb1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae8d7dd42a3b99b61d2ef60bc0c2eaf0d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#ae8d7dd42a3b99b61d2ef60bc0c2eaf0d">mbedtls_asn1_get_tag</a> (unsigned char **p, const unsigned char *end, size_t *len, int tag)</td></tr> <tr class="memdesc:ae8d7dd42a3b99b61d2ef60bc0c2eaf0d"><td class="mdescLeft"> </td><td class="mdescRight">Get the tag and length of the tag. Check for the requested tag. Updates the pointer to immediately behind the tag and length. <a href="#ae8d7dd42a3b99b61d2ef60bc0c2eaf0d">More...</a><br /></td></tr> <tr class="separator:ae8d7dd42a3b99b61d2ef60bc0c2eaf0d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aec9e4bbd8690a8ab17cabf87893dbd2b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#aec9e4bbd8690a8ab17cabf87893dbd2b">mbedtls_asn1_get_bool</a> (unsigned char **p, const unsigned char *end, int *val)</td></tr> <tr class="memdesc:aec9e4bbd8690a8ab17cabf87893dbd2b"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a boolean ASN.1 tag and its value. Updates the pointer to immediately behind the full tag. <a href="#aec9e4bbd8690a8ab17cabf87893dbd2b">More...</a><br /></td></tr> <tr class="separator:aec9e4bbd8690a8ab17cabf87893dbd2b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7f8a8b447c11f2200cc5aa8033801b72"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#a7f8a8b447c11f2200cc5aa8033801b72">mbedtls_asn1_get_int</a> (unsigned char **p, const unsigned char *end, int *val)</td></tr> <tr class="memdesc:a7f8a8b447c11f2200cc5aa8033801b72"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve an integer ASN.1 tag and its value. Updates the pointer to immediately behind the full tag. <a href="#a7f8a8b447c11f2200cc5aa8033801b72">More...</a><br /></td></tr> <tr class="separator:a7f8a8b447c11f2200cc5aa8033801b72"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae2dcf021cf1326b62e2f23aa3bda69d0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#ae2dcf021cf1326b62e2f23aa3bda69d0">mbedtls_asn1_get_bitstring</a> (unsigned char **p, const unsigned char *end, <a class="el" href="structmbedtls__asn1__bitstring.html">mbedtls_asn1_bitstring</a> *bs)</td></tr> <tr class="memdesc:ae2dcf021cf1326b62e2f23aa3bda69d0"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a bitstring ASN.1 tag and its value. Updates the pointer to immediately behind the full tag. <a href="#ae2dcf021cf1326b62e2f23aa3bda69d0">More...</a><br /></td></tr> <tr class="separator:ae2dcf021cf1326b62e2f23aa3bda69d0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0f9d2d846b16d5ce18ad99de6224313b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#a0f9d2d846b16d5ce18ad99de6224313b">mbedtls_asn1_get_bitstring_null</a> (unsigned char **p, const unsigned char *end, size_t *len)</td></tr> <tr class="memdesc:a0f9d2d846b16d5ce18ad99de6224313b"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a bitstring ASN.1 tag without unused bits and its value. Updates the pointer to the beginning of the bit/octet string. <a href="#a0f9d2d846b16d5ce18ad99de6224313b">More...</a><br /></td></tr> <tr class="separator:a0f9d2d846b16d5ce18ad99de6224313b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a872d62128956b3574bb0e681536c0d6b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#a872d62128956b3574bb0e681536c0d6b">mbedtls_asn1_get_sequence_of</a> (unsigned char **p, const unsigned char *end, <a class="el" href="structmbedtls__asn1__sequence.html">mbedtls_asn1_sequence</a> *cur, int tag)</td></tr> <tr class="memdesc:a872d62128956b3574bb0e681536c0d6b"><td class="mdescLeft"> </td><td class="mdescRight">Parses and splits an ASN.1 "SEQUENCE OF <tag>" Updated the pointer to immediately behind the full sequence tag. <a href="#a872d62128956b3574bb0e681536c0d6b">More...</a><br /></td></tr> <tr class="separator:a872d62128956b3574bb0e681536c0d6b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a48e235454b64aa67c9472a6579706b05"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#a48e235454b64aa67c9472a6579706b05">mbedtls_asn1_get_mpi</a> (unsigned char **p, const unsigned char *end, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X)</td></tr> <tr class="memdesc:a48e235454b64aa67c9472a6579706b05"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a MPI value from an integer ASN.1 tag. Updates the pointer to immediately behind the full tag. <a href="#a48e235454b64aa67c9472a6579706b05">More...</a><br /></td></tr> <tr class="separator:a48e235454b64aa67c9472a6579706b05"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:add253579640ea717f368d9a0f6085be0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#add253579640ea717f368d9a0f6085be0">mbedtls_asn1_get_alg</a> (unsigned char **p, const unsigned char *end, <a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a> *alg, <a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a> *params)</td></tr> <tr class="memdesc:add253579640ea717f368d9a0f6085be0"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve an AlgorithmIdentifier ASN.1 sequence. Updates the pointer to immediately behind the full AlgorithmIdentifier. <a href="#add253579640ea717f368d9a0f6085be0">More...</a><br /></td></tr> <tr class="separator:add253579640ea717f368d9a0f6085be0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adad023ecf92a50d47eaf206705efdb0e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#adad023ecf92a50d47eaf206705efdb0e">mbedtls_asn1_get_alg_null</a> (unsigned char **p, const unsigned char *end, <a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a> *alg)</td></tr> <tr class="memdesc:adad023ecf92a50d47eaf206705efdb0e"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve an AlgorithmIdentifier ASN.1 sequence with NULL or no params. Updates the pointer to immediately behind the full AlgorithmIdentifier. <a href="#adad023ecf92a50d47eaf206705efdb0e">More...</a><br /></td></tr> <tr class="separator:adad023ecf92a50d47eaf206705efdb0e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aabe93ade4a012da5d20cf668eededa75"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#aabe93ade4a012da5d20cf668eededa75">mbedtls_asn1_find_named_data</a> (<a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> *list, const char *oid, size_t len)</td></tr> <tr class="memdesc:aabe93ade4a012da5d20cf668eededa75"><td class="mdescLeft"> </td><td class="mdescRight">Find a specific named_data entry in a sequence or list based on the OID. <a href="#aabe93ade4a012da5d20cf668eededa75">More...</a><br /></td></tr> <tr class="separator:aabe93ade4a012da5d20cf668eededa75"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a46abb857e148f22a616b56b66a781506"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#a46abb857e148f22a616b56b66a781506">mbedtls_asn1_free_named_data</a> (<a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> *entry)</td></tr> <tr class="memdesc:a46abb857e148f22a616b56b66a781506"><td class="mdescLeft"> </td><td class="mdescRight">Free a <a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> entry. <a href="#a46abb857e148f22a616b56b66a781506">More...</a><br /></td></tr> <tr class="separator:a46abb857e148f22a616b56b66a781506"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afd1a084a9285cebcd289bf6df0e6c021"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="asn1_8h.html#afd1a084a9285cebcd289bf6df0e6c021">mbedtls_asn1_free_named_data_list</a> (<a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> **head)</td></tr> <tr class="memdesc:afd1a084a9285cebcd289bf6df0e6c021"><td class="mdescLeft"> </td><td class="mdescRight">Free all entries in a <a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> list Head will be set to NULL. <a href="#afd1a084a9285cebcd289bf6df0e6c021">More...</a><br /></td></tr> <tr class="separator:afd1a084a9285cebcd289bf6df0e6c021"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Generic ASN.1 parsing. </p> <p class="definition">Definition in file <a class="el" href="asn1_8h_source.html">asn1.h</a>.</p> </div><h2 class="groupheader">Macro Definition Documentation</h2> <a id="a0b81f225b3551ec7c4da69b2d183d10b"></a> <h2 class="memtitle"><span class="permalink"><a href="#a0b81f225b3551ec7c4da69b2d183d10b">◆ </a></span>MBEDTLS_OID_CMP</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define MBEDTLS_OID_CMP</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">oid_str, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">oid_buf </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">( ( <a class="code" href="asn1_8h.html#ac2f2e00874ca486c912c33bb4f7bb16a">MBEDTLS_OID_SIZE</a>(oid_str) != (oid_buf)->len ) || \</div><div class="line"> memcmp( (oid_str), (oid_buf)->p, (oid_buf)->len) != 0 )</div><div class="ttc" id="asn1_8h_html_ac2f2e00874ca486c912c33bb4f7bb16a"><div class="ttname"><a href="asn1_8h.html#ac2f2e00874ca486c912c33bb4f7bb16a">MBEDTLS_OID_SIZE</a></div><div class="ttdeci">#define MBEDTLS_OID_SIZE(x)</div><div class="ttdef"><b>Definition:</b> <a href="asn1_8h_source.html#l00110">asn1.h:110</a></div></div> </div><!-- fragment --><p>Compares an <a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a> structure to a reference OID.</p> <p>Only works for 'defined' oid_str values (MBEDTLS_OID_HMAC_SHA1), you cannot use a 'unsigned char *oid' here! </p> <p class="definition">Definition at line <a class="el" href="asn1_8h_source.html#l00118">118</a> of file <a class="el" href="asn1_8h_source.html">asn1.h</a>.</p> </div> </div> <a id="ac2f2e00874ca486c912c33bb4f7bb16a"></a> <h2 class="memtitle"><span class="permalink"><a href="#ac2f2e00874ca486c912c33bb4f7bb16a">◆ </a></span>MBEDTLS_OID_SIZE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define MBEDTLS_OID_SIZE</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (sizeof(x) - 1)</td> </tr> </table> </div><div class="memdoc"> <p>Returns the size of the binary string, without the trailing \0 </p> <p class="definition">Definition at line <a class="el" href="asn1_8h_source.html#l00110">110</a> of file <a class="el" href="asn1_8h_source.html">asn1.h</a>.</p> </div> </div> <h2 class="groupheader">Typedef Documentation</h2> <a id="adfc9b9fed6d69849942d4a63ece7513d"></a> <h2 class="memtitle"><span class="permalink"><a href="#adfc9b9fed6d69849942d4a63ece7513d">◆ </a></span>mbedtls_asn1_bitstring</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structmbedtls__asn1__bitstring.html">mbedtls_asn1_bitstring</a> <a class="el" href="structmbedtls__asn1__bitstring.html">mbedtls_asn1_bitstring</a></td> </tr> </table> </div><div class="memdoc"> <p>Container for ASN1 bit strings. </p> </div> </div> <a id="a92008d574dc457ec6c925ef29631545b"></a> <h2 class="memtitle"><span class="permalink"><a href="#a92008d574dc457ec6c925ef29631545b">◆ </a></span>mbedtls_asn1_buf</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a> <a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a></td> </tr> </table> </div><div class="memdoc"> <p>Type-length-value structure that allows for ASN1 using DER. </p> </div> </div> <a id="a3f3ca4991620a3ab05d747d00a6cb70e"></a> <h2 class="memtitle"><span class="permalink"><a href="#a3f3ca4991620a3ab05d747d00a6cb70e">◆ </a></span>mbedtls_asn1_named_data</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> <a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a></td> </tr> </table> </div><div class="memdoc"> <p>Container for a sequence or list of 'named' ASN.1 data items </p> </div> </div> <a id="a21302e30db75b1b5e3387b16958080bf"></a> <h2 class="memtitle"><span class="permalink"><a href="#a21302e30db75b1b5e3387b16958080bf">◆ </a></span>mbedtls_asn1_sequence</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structmbedtls__asn1__sequence.html">mbedtls_asn1_sequence</a> <a class="el" href="structmbedtls__asn1__sequence.html">mbedtls_asn1_sequence</a></td> </tr> </table> </div><div class="memdoc"> <p>Container for a sequence of ASN.1 items </p> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a id="aabe93ade4a012da5d20cf668eededa75"></a> <h2 class="memtitle"><span class="permalink"><a href="#aabe93ade4a012da5d20cf668eededa75">◆ </a></span>mbedtls_asn1_find_named_data()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a>* mbedtls_asn1_find_named_data </td> <td>(</td> <td class="paramtype"><a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>oid</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Find a specific named_data entry in a sequence or list based on the OID. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>The list to seek through </td></tr> <tr><td class="paramname">oid</td><td>The OID to look for </td></tr> <tr><td class="paramname">len</td><td>Size of the OID</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>NULL if not found, or a pointer to the existing entry. </dd></dl> </div> </div> <a id="a46abb857e148f22a616b56b66a781506"></a> <h2 class="memtitle"><span class="permalink"><a href="#a46abb857e148f22a616b56b66a781506">◆ </a></span>mbedtls_asn1_free_named_data()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mbedtls_asn1_free_named_data </td> <td>(</td> <td class="paramtype"><a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> * </td> <td class="paramname"><em>entry</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Free a <a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> entry. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">entry</td><td>The named data entry to free </td></tr> </table> </dd> </dl> </div> </div> <a id="afd1a084a9285cebcd289bf6df0e6c021"></a> <h2 class="memtitle"><span class="permalink"><a href="#afd1a084a9285cebcd289bf6df0e6c021">◆ </a></span>mbedtls_asn1_free_named_data_list()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mbedtls_asn1_free_named_data_list </td> <td>(</td> <td class="paramtype"><a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> ** </td> <td class="paramname"><em>head</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Free all entries in a <a class="el" href="structmbedtls__asn1__named__data.html">mbedtls_asn1_named_data</a> list Head will be set to NULL. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">head</td><td>Pointer to the head of the list of named data entries to free </td></tr> </table> </dd> </dl> </div> </div> <a id="add253579640ea717f368d9a0f6085be0"></a> <h2 class="memtitle"><span class="permalink"><a href="#add253579640ea717f368d9a0f6085be0">◆ </a></span>mbedtls_asn1_get_alg()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mbedtls_asn1_get_alg </td> <td>(</td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a> * </td> <td class="paramname"><em>alg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a> * </td> <td class="paramname"><em>params</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Retrieve an AlgorithmIdentifier ASN.1 sequence. Updates the pointer to immediately behind the full AlgorithmIdentifier. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The position in the ASN.1 data </td></tr> <tr><td class="paramname">end</td><td>End of data </td></tr> <tr><td class="paramname">alg</td><td>The buffer to receive the OID </td></tr> <tr><td class="paramname">params</td><td>The buffer to receive the params (if any)</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if successful or a specific ASN.1 or MPI error code. </dd></dl> </div> </div> <a id="adad023ecf92a50d47eaf206705efdb0e"></a> <h2 class="memtitle"><span class="permalink"><a href="#adad023ecf92a50d47eaf206705efdb0e">◆ </a></span>mbedtls_asn1_get_alg_null()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mbedtls_asn1_get_alg_null </td> <td>(</td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structmbedtls__asn1__buf.html">mbedtls_asn1_buf</a> * </td> <td class="paramname"><em>alg</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Retrieve an AlgorithmIdentifier ASN.1 sequence with NULL or no params. Updates the pointer to immediately behind the full AlgorithmIdentifier. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The position in the ASN.1 data </td></tr> <tr><td class="paramname">end</td><td>End of data </td></tr> <tr><td class="paramname">alg</td><td>The buffer to receive the OID</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if successful or a specific ASN.1 or MPI error code. </dd></dl> </div> </div> <a id="ae2dcf021cf1326b62e2f23aa3bda69d0"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae2dcf021cf1326b62e2f23aa3bda69d0">◆ </a></span>mbedtls_asn1_get_bitstring()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mbedtls_asn1_get_bitstring </td> <td>(</td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structmbedtls__asn1__bitstring.html">mbedtls_asn1_bitstring</a> * </td> <td class="paramname"><em>bs</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Retrieve a bitstring ASN.1 tag and its value. Updates the pointer to immediately behind the full tag. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The position in the ASN.1 data </td></tr> <tr><td class="paramname">end</td><td>End of data </td></tr> <tr><td class="paramname">bs</td><td>The variable that will receive the value</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if successful or a specific ASN.1 error code. </dd></dl> </div> </div> <a id="a0f9d2d846b16d5ce18ad99de6224313b"></a> <h2 class="memtitle"><span class="permalink"><a href="#a0f9d2d846b16d5ce18ad99de6224313b">◆ </a></span>mbedtls_asn1_get_bitstring_null()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mbedtls_asn1_get_bitstring_null </td> <td>(</td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t * </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Retrieve a bitstring ASN.1 tag without unused bits and its value. Updates the pointer to the beginning of the bit/octet string. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The position in the ASN.1 data </td></tr> <tr><td class="paramname">end</td><td>End of data </td></tr> <tr><td class="paramname">len</td><td>Length of the actual bit/octect string in bytes</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if successful or a specific ASN.1 error code. </dd></dl> </div> </div> <a id="aec9e4bbd8690a8ab17cabf87893dbd2b"></a> <h2 class="memtitle"><span class="permalink"><a href="#aec9e4bbd8690a8ab17cabf87893dbd2b">◆ </a></span>mbedtls_asn1_get_bool()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mbedtls_asn1_get_bool </td> <td>(</td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>val</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Retrieve a boolean ASN.1 tag and its value. Updates the pointer to immediately behind the full tag. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The position in the ASN.1 data </td></tr> <tr><td class="paramname">end</td><td>End of data </td></tr> <tr><td class="paramname">val</td><td>The variable that will receive the value</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if successful or a specific ASN.1 error code. </dd></dl> </div> </div> <a id="a7f8a8b447c11f2200cc5aa8033801b72"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7f8a8b447c11f2200cc5aa8033801b72">◆ </a></span>mbedtls_asn1_get_int()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mbedtls_asn1_get_int </td> <td>(</td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>val</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Retrieve an integer ASN.1 tag and its value. Updates the pointer to immediately behind the full tag. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The position in the ASN.1 data </td></tr> <tr><td class="paramname">end</td><td>End of data </td></tr> <tr><td class="paramname">val</td><td>The variable that will receive the value</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if successful or a specific ASN.1 error code. </dd></dl> </div> </div> <a id="ad45c1d0ed3694fe903342cb32647bfb1"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad45c1d0ed3694fe903342cb32647bfb1">◆ </a></span>mbedtls_asn1_get_len()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mbedtls_asn1_get_len </td> <td>(</td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t * </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Get the length of an ASN.1 element. Updates the pointer to immediately behind the length. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The position in the ASN.1 data </td></tr> <tr><td class="paramname">end</td><td>End of data </td></tr> <tr><td class="paramname">len</td><td>The variable that will receive the value</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_ASN1_OUT_OF_DATA on reaching end of data, MBEDTLS_ERR_ASN1_INVALID_LENGTH if length is unparseable. </dd></dl> </div> </div> <a id="a48e235454b64aa67c9472a6579706b05"></a> <h2 class="memtitle"><span class="permalink"><a href="#a48e235454b64aa67c9472a6579706b05">◆ </a></span>mbedtls_asn1_get_mpi()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mbedtls_asn1_get_mpi </td> <td>(</td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> * </td> <td class="paramname"><em>X</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Retrieve a MPI value from an integer ASN.1 tag. Updates the pointer to immediately behind the full tag. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The position in the ASN.1 data </td></tr> <tr><td class="paramname">end</td><td>End of data </td></tr> <tr><td class="paramname">X</td><td>The MPI that will receive the value</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if successful or a specific ASN.1 or MPI error code. </dd></dl> </div> </div> <a id="a872d62128956b3574bb0e681536c0d6b"></a> <h2 class="memtitle"><span class="permalink"><a href="#a872d62128956b3574bb0e681536c0d6b">◆ </a></span>mbedtls_asn1_get_sequence_of()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mbedtls_asn1_get_sequence_of </td> <td>(</td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structmbedtls__asn1__sequence.html">mbedtls_asn1_sequence</a> * </td> <td class="paramname"><em>cur</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>tag</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Parses and splits an ASN.1 "SEQUENCE OF <tag>" Updated the pointer to immediately behind the full sequence tag. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The position in the ASN.1 data </td></tr> <tr><td class="paramname">end</td><td>End of data </td></tr> <tr><td class="paramname">cur</td><td>First variable in the chain to fill </td></tr> <tr><td class="paramname">tag</td><td>Type of sequence</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if successful or a specific ASN.1 error code. </dd></dl> </div> </div> <a id="ae8d7dd42a3b99b61d2ef60bc0c2eaf0d"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae8d7dd42a3b99b61d2ef60bc0c2eaf0d">◆ </a></span>mbedtls_asn1_get_tag()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mbedtls_asn1_get_tag </td> <td>(</td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t * </td> <td class="paramname"><em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>tag</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Get the tag and length of the tag. Check for the requested tag. Updates the pointer to immediately behind the tag and length. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The position in the ASN.1 data </td></tr> <tr><td class="paramname">end</td><td>End of data </td></tr> <tr><td class="paramname">len</td><td>The variable that will receive the length </td></tr> <tr><td class="paramname">tag</td><td>The expected tag</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_ASN1_UNEXPECTED_TAG if tag did not match requested tag, or another specific ASN.1 error code. </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Tue Jan 1 2019 18:27:17 for mbed TLS v2.7.8 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.13 </small></address> </body> </html>