Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > e405d5f6b10a3a92bd2c28c4aa026c70 > files > 415

lib64mbedtls-devel-2.6.0-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.6.0: md.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.6.0
   </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> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">md.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Generic message digest wrapper.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stddef.h&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for md.h:</div>
<div class="dyncontent">
<div class="center"><img src="md_8h__incl.png" border="0" usemap="#md_8h" alt=""/></div>
<map name="md_8h" id="md_8h">
</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="md_8h__dep__incl.png" border="0" usemap="#md_8hdep" alt=""/></div>
<map name="md_8hdep" id="md_8hdep">
<area shape="rect" id="node2" href="pk_8h.html" title="Public Key abstraction layer. " alt="" coords="531,155,593,181"/>
<area shape="rect" id="node3" href="ssl__ciphersuites_8h.html" title="SSL Ciphersuites for mbed TLS. " alt="" coords="291,229,494,256"/>
<area shape="rect" id="node14" href="oid_8h.html" title="Object Identifier (OID) database. " alt="" coords="671,304,743,331"/>
<area shape="rect" id="node16" href="rsa_8h.html" title="The RSA public&#45;key cryptosystem. " alt="" coords="598,80,670,107"/>
<area shape="rect" id="node17" href="ecdsa_8h.html" title="Elliptic curve DSA. " alt="" coords="431,80,523,107"/>
<area shape="rect" id="node18" href="ecjpake_8h.html" title="Elliptic curve J&#45;PAKE. " alt="" coords="745,80,857,107"/>
<area shape="rect" id="node19" href="hmac__drbg_8h.html" title="HMAC_DRBG (NIST SP 800&#45;90A) " alt="" coords="881,80,1013,107"/>
<area shape="rect" id="node20" href="pkcs12_8h.html" title="PKCS#12 Personal Information Exchange Syntax. " alt="" coords="1037,80,1140,107"/>
<area shape="rect" id="node21" href="pkcs5_8h.html" title="PKCS#5 functions. " alt="" coords="1164,80,1256,107"/>
<area shape="rect" id="node11" href="x509_8h.html" title="X.509 generic defines and structures. " alt="" coords="525,229,607,256"/>
<area shape="rect" id="node4" href="ssl_8h.html" title="SSL/TLS functions. " alt="" coords="329,453,401,480"/>
<area shape="rect" id="node5" href="debug_8h.html" title="Functions for controlling and providing debug output from the library. " alt="" coords="5,528,97,555"/>
<area shape="rect" id="node6" href="net__sockets_8h.html" title="Network communication functions. " alt="" coords="122,528,274,555"/>
<area shape="rect" id="node8" href="ssl__cache_8h.html" title="SSL session cache implementation. " alt="" coords="299,528,431,555"/>
<area shape="rect" id="node9" href="ssl__cookie_8h.html" title="DTLS cookie callbacks implementation. " alt="" coords="455,528,597,555"/>
<area shape="rect" id="node10" href="ssl__ticket_8h.html" title="TLS server ticket callbacks implementation. " alt="" coords="621,528,764,555"/>
<area shape="rect" id="node7" href="net_8h.html" title="Deprecated header file that includes mbedtls/net_sockets.h. " alt="" coords="162,603,234,629"/>
<area shape="rect" id="node12" href="x509__crt_8h.html" title="X.509 certificate parsing and writing. " alt="" coords="303,379,426,405"/>
<area shape="rect" id="node13" href="x509__crl_8h.html" title="X.509 certificate revocation list parsing. " alt="" coords="378,304,501,331"/>
<area shape="rect" id="node15" href="x509__csr_8h.html" title="X.509 certificate signing request parsing and writing. " alt="" coords="525,304,647,331"/>
</map>
</div>
</div>
<p><a href="md_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 &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic message digest context.  <a href="structmbedtls__md__context__t.html#details">More...</a><br /></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:a121b228f0512def159e3bd4ced07633b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a121b228f0512def159e3bd4ced07633b">MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE</a>&#160;&#160;&#160;-0x5080</td></tr>
<tr class="memdesc:a121b228f0512def159e3bd4ced07633b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The selected feature is not available.  <a href="#a121b228f0512def159e3bd4ced07633b">More...</a><br /></td></tr>
<tr class="separator:a121b228f0512def159e3bd4ced07633b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeeb355bf3d3d39a2a6ba50544139b9a7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#aeeb355bf3d3d39a2a6ba50544139b9a7">MBEDTLS_ERR_MD_BAD_INPUT_DATA</a>&#160;&#160;&#160;-0x5100</td></tr>
<tr class="memdesc:aeeb355bf3d3d39a2a6ba50544139b9a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bad input parameters to function.  <a href="#aeeb355bf3d3d39a2a6ba50544139b9a7">More...</a><br /></td></tr>
<tr class="separator:aeeb355bf3d3d39a2a6ba50544139b9a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e7a4f1a618afbb412ef82ca2e572140"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a7e7a4f1a618afbb412ef82ca2e572140">MBEDTLS_ERR_MD_ALLOC_FAILED</a>&#160;&#160;&#160;-0x5180</td></tr>
<tr class="memdesc:a7e7a4f1a618afbb412ef82ca2e572140"><td class="mdescLeft">&#160;</td><td class="mdescRight">Failed to allocate memory.  <a href="#a7e7a4f1a618afbb412ef82ca2e572140">More...</a><br /></td></tr>
<tr class="separator:a7e7a4f1a618afbb412ef82ca2e572140"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab0a160e4b0efdd4cc8cbe12b4813047"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#aab0a160e4b0efdd4cc8cbe12b4813047">MBEDTLS_ERR_MD_FILE_IO_ERROR</a>&#160;&#160;&#160;-0x5200</td></tr>
<tr class="memdesc:aab0a160e4b0efdd4cc8cbe12b4813047"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opening or reading of file failed.  <a href="#aab0a160e4b0efdd4cc8cbe12b4813047">More...</a><br /></td></tr>
<tr class="separator:aab0a160e4b0efdd4cc8cbe12b4813047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3e0e65cb5b289a358b83b5af1fdd41b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ad3e0e65cb5b289a358b83b5af1fdd41b">MBEDTLS_MD_MAX_SIZE</a>&#160;&#160;&#160;32  /* longest known is SHA256 or less */</td></tr>
<tr class="separator:ad3e0e65cb5b289a358b83b5af1fdd41b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9f53b232ef244efb301233d111930dc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#aa9f53b232ef244efb301233d111930dc">MBEDTLS_DEPRECATED</a></td></tr>
<tr class="separator:aa9f53b232ef244efb301233d111930dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a496e73a6f229eba89b4abd9955822adb"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a></td></tr>
<tr class="memdesc:a496e73a6f229eba89b4abd9955822adb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque struct defined in md_internal.h.  <a href="#a496e73a6f229eba89b4abd9955822adb">More...</a><br /></td></tr>
<tr class="separator:a496e73a6f229eba89b4abd9955822adb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a219313cb40503ec3e34a857ab98b2296"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a> { <br />
&#160;&#160;<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296a564288006d735f75738021342ca5f9d1">MBEDTLS_MD_NONE</a> =0, 
<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296af765a736e226d2832625c3267c8c2472">MBEDTLS_MD_MD2</a>, 
<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296a8f31ceaa511350d5da8393a7ce4a5704">MBEDTLS_MD_MD4</a>, 
<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296a14fbb8d456ae15f082c2360200cd50bf">MBEDTLS_MD_MD5</a>, 
<br />
&#160;&#160;<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296a800a5ff57003d84ac73f1aadeaaf00fe">MBEDTLS_MD_SHA1</a>, 
<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296a77e7fbd0fa5e31e7e1c9295928568f74">MBEDTLS_MD_SHA224</a>, 
<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296a7634aa1a264b0e1a5ec65f4ed77468f8">MBEDTLS_MD_SHA256</a>, 
<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296a39dd5c95e28fac45c3f18e55b11329cb">MBEDTLS_MD_SHA384</a>, 
<br />
&#160;&#160;<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296a0cdbe8272ceee7d63b2bfadd5ed05c26">MBEDTLS_MD_SHA512</a>, 
<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296a1c358adae154d70c5eb131efcb5d4caf">MBEDTLS_MD_RIPEMD160</a>
<br />
 }</td></tr>
<tr class="separator:a219313cb40503ec3e34a857ab98b2296"><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:a51dc7cc39a5bf5b894cc1616bf798c06"><td class="memItemLeft" align="right" valign="top">const int *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a51dc7cc39a5bf5b894cc1616bf798c06">mbedtls_md_list</a> (void)</td></tr>
<tr class="memdesc:a51dc7cc39a5bf5b894cc1616bf798c06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the list of digests supported by the generic digest module.  <a href="#a51dc7cc39a5bf5b894cc1616bf798c06">More...</a><br /></td></tr>
<tr class="separator:a51dc7cc39a5bf5b894cc1616bf798c06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4619cce171e558d059baae35da50a2a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ac4619cce171e558d059baae35da50a2a">mbedtls_md_info_from_string</a> (const char *md_name)</td></tr>
<tr class="memdesc:ac4619cce171e558d059baae35da50a2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the message digest information associated with the given digest name.  <a href="#ac4619cce171e558d059baae35da50a2a">More...</a><br /></td></tr>
<tr class="separator:ac4619cce171e558d059baae35da50a2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca53b51e0c8eb0e07c7eb4a3e6acfa0d"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#aca53b51e0c8eb0e07c7eb4a3e6acfa0d">mbedtls_md_info_from_type</a> (<a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a> md_type)</td></tr>
<tr class="memdesc:aca53b51e0c8eb0e07c7eb4a3e6acfa0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the message digest information associated with the given digest type.  <a href="#aca53b51e0c8eb0e07c7eb4a3e6acfa0d">More...</a><br /></td></tr>
<tr class="separator:aca53b51e0c8eb0e07c7eb4a3e6acfa0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8b02927ca10552e3cbf293fa8c10e24"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ad8b02927ca10552e3cbf293fa8c10e24">mbedtls_md_init</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx)</td></tr>
<tr class="memdesc:ad8b02927ca10552e3cbf293fa8c10e24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a md_context (as NONE) This should always be called first.  <a href="#ad8b02927ca10552e3cbf293fa8c10e24">More...</a><br /></td></tr>
<tr class="separator:ad8b02927ca10552e3cbf293fa8c10e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3248ddb6ad05035292fa92ac4af2587"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#af3248ddb6ad05035292fa92ac4af2587">mbedtls_md_free</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx)</td></tr>
<tr class="memdesc:af3248ddb6ad05035292fa92ac4af2587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free and clear the internal structures of ctx.  <a href="#af3248ddb6ad05035292fa92ac4af2587">More...</a><br /></td></tr>
<tr class="separator:af3248ddb6ad05035292fa92ac4af2587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40d6e9a8c2ee4d9c24782d4dd6fc7c36"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a40d6e9a8c2ee4d9c24782d4dd6fc7c36">mbedtls_md_init_ctx</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx, const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *md_info) <a class="el" href="md_8h.html#aa9f53b232ef244efb301233d111930dc">MBEDTLS_DEPRECATED</a></td></tr>
<tr class="memdesc:a40d6e9a8c2ee4d9c24782d4dd6fc7c36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select MD to use and allocate internal structures.  <a href="#a40d6e9a8c2ee4d9c24782d4dd6fc7c36">More...</a><br /></td></tr>
<tr class="separator:a40d6e9a8c2ee4d9c24782d4dd6fc7c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b858111212997b90bd7d2c71010a7ec"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a1b858111212997b90bd7d2c71010a7ec">mbedtls_md_setup</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx, const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *md_info, int hmac)</td></tr>
<tr class="memdesc:a1b858111212997b90bd7d2c71010a7ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select MD to use and allocate internal structures.  <a href="#a1b858111212997b90bd7d2c71010a7ec">More...</a><br /></td></tr>
<tr class="separator:a1b858111212997b90bd7d2c71010a7ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5140622773fa71bbe87ca521e57ff8c2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a5140622773fa71bbe87ca521e57ff8c2">mbedtls_md_clone</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *dst, const <a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *src)</td></tr>
<tr class="memdesc:a5140622773fa71bbe87ca521e57ff8c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clone the state of an MD context.  <a href="#a5140622773fa71bbe87ca521e57ff8c2">More...</a><br /></td></tr>
<tr class="separator:a5140622773fa71bbe87ca521e57ff8c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae20f4ddcf2bbf2e59cafc6fab8c993d6"><td class="memItemLeft" align="right" valign="top">unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ae20f4ddcf2bbf2e59cafc6fab8c993d6">mbedtls_md_get_size</a> (const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *md_info)</td></tr>
<tr class="memdesc:ae20f4ddcf2bbf2e59cafc6fab8c993d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the message digest output.  <a href="#ae20f4ddcf2bbf2e59cafc6fab8c993d6">More...</a><br /></td></tr>
<tr class="separator:ae20f4ddcf2bbf2e59cafc6fab8c993d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a084e1b71c78daa7071691f60de5131"><td class="memItemLeft" align="right" valign="top"><a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a7a084e1b71c78daa7071691f60de5131">mbedtls_md_get_type</a> (const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *md_info)</td></tr>
<tr class="memdesc:a7a084e1b71c78daa7071691f60de5131"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the type of the message digest output.  <a href="#a7a084e1b71c78daa7071691f60de5131">More...</a><br /></td></tr>
<tr class="separator:a7a084e1b71c78daa7071691f60de5131"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ceb9e6b3d4b21612ef5d7532872c6bc"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a3ceb9e6b3d4b21612ef5d7532872c6bc">mbedtls_md_get_name</a> (const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *md_info)</td></tr>
<tr class="memdesc:a3ceb9e6b3d4b21612ef5d7532872c6bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the message digest output.  <a href="#a3ceb9e6b3d4b21612ef5d7532872c6bc">More...</a><br /></td></tr>
<tr class="separator:a3ceb9e6b3d4b21612ef5d7532872c6bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24483eff556810e3489ac6abefa328e6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a24483eff556810e3489ac6abefa328e6">mbedtls_md_starts</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx)</td></tr>
<tr class="memdesc:a24483eff556810e3489ac6abefa328e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepare the context to digest a new message.  <a href="#a24483eff556810e3489ac6abefa328e6">More...</a><br /></td></tr>
<tr class="separator:a24483eff556810e3489ac6abefa328e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e50ce3a8c75b5221d07be657b93ca94"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a7e50ce3a8c75b5221d07be657b93ca94">mbedtls_md_update</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx, const unsigned char *input, size_t ilen)</td></tr>
<tr class="memdesc:a7e50ce3a8c75b5221d07be657b93ca94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic message digest process buffer Called between <a class="el" href="md_8h.html#a24483eff556810e3489ac6abefa328e6" title="Prepare the context to digest a new message. ">mbedtls_md_starts()</a> and <a class="el" href="md_8h.html#adf77ab9b0f117367883988ee5f0af1f4" title="Generic message digest final digest Called after mbedtls_md_update(). ">mbedtls_md_finish()</a>.  <a href="#a7e50ce3a8c75b5221d07be657b93ca94">More...</a><br /></td></tr>
<tr class="separator:a7e50ce3a8c75b5221d07be657b93ca94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf77ab9b0f117367883988ee5f0af1f4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#adf77ab9b0f117367883988ee5f0af1f4">mbedtls_md_finish</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx, unsigned char *output)</td></tr>
<tr class="memdesc:adf77ab9b0f117367883988ee5f0af1f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic message digest final digest Called after <a class="el" href="md_8h.html#a7e50ce3a8c75b5221d07be657b93ca94" title="Generic message digest process buffer Called between mbedtls_md_starts() and mbedtls_md_finish(). ">mbedtls_md_update()</a>.  <a href="#adf77ab9b0f117367883988ee5f0af1f4">More...</a><br /></td></tr>
<tr class="separator:adf77ab9b0f117367883988ee5f0af1f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36c5d8bda1905e0434708f0ef5912dda"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a36c5d8bda1905e0434708f0ef5912dda">mbedtls_md</a> (const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *md_info, const unsigned char *input, size_t ilen, unsigned char *output)</td></tr>
<tr class="memdesc:a36c5d8bda1905e0434708f0ef5912dda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output = message_digest( input buffer )  <a href="#a36c5d8bda1905e0434708f0ef5912dda">More...</a><br /></td></tr>
<tr class="separator:a36c5d8bda1905e0434708f0ef5912dda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8968f8659fc277f013374c1bac8d4d1a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a8968f8659fc277f013374c1bac8d4d1a">mbedtls_md_hmac_starts</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx, const unsigned char *key, size_t keylen)</td></tr>
<tr class="memdesc:a8968f8659fc277f013374c1bac8d4d1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set HMAC key and prepare to authenticate a new message.  <a href="#a8968f8659fc277f013374c1bac8d4d1a">More...</a><br /></td></tr>
<tr class="separator:a8968f8659fc277f013374c1bac8d4d1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86cbea1c3bcd558a7e185ff8200a29a6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a86cbea1c3bcd558a7e185ff8200a29a6">mbedtls_md_hmac_update</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx, const unsigned char *input, size_t ilen)</td></tr>
<tr class="memdesc:a86cbea1c3bcd558a7e185ff8200a29a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic HMAC process buffer.  <a href="#a86cbea1c3bcd558a7e185ff8200a29a6">More...</a><br /></td></tr>
<tr class="separator:a86cbea1c3bcd558a7e185ff8200a29a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7aeafef80c89e47ee3033035a6a75a27"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a7aeafef80c89e47ee3033035a6a75a27">mbedtls_md_hmac_finish</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx, unsigned char *output)</td></tr>
<tr class="memdesc:a7aeafef80c89e47ee3033035a6a75a27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output HMAC.  <a href="#a7aeafef80c89e47ee3033035a6a75a27">More...</a><br /></td></tr>
<tr class="separator:a7aeafef80c89e47ee3033035a6a75a27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a5c64b5bda0f294e917ccd5a8ca234e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a3a5c64b5bda0f294e917ccd5a8ca234e">mbedtls_md_hmac_reset</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx)</td></tr>
<tr class="memdesc:a3a5c64b5bda0f294e917ccd5a8ca234e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepare to authenticate a new message with the same key.  <a href="#a3a5c64b5bda0f294e917ccd5a8ca234e">More...</a><br /></td></tr>
<tr class="separator:a3a5c64b5bda0f294e917ccd5a8ca234e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eefd37cdf52a1fcc04f8545fe890d10"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a2eefd37cdf52a1fcc04f8545fe890d10">mbedtls_md_hmac</a> (const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *md_info, const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char *output)</td></tr>
<tr class="memdesc:a2eefd37cdf52a1fcc04f8545fe890d10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output = Generic_HMAC( hmac key, input buffer )  <a href="#a2eefd37cdf52a1fcc04f8545fe890d10">More...</a><br /></td></tr>
<tr class="separator:a2eefd37cdf52a1fcc04f8545fe890d10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab827b7d1ef7ee631861c7edd33c7b570"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ab827b7d1ef7ee631861c7edd33c7b570">mbedtls_md_process</a> (<a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *ctx, const unsigned char *data)</td></tr>
<tr class="separator:ab827b7d1ef7ee631861c7edd33c7b570"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Generic message digest wrapper. </p>
<dl class="section author"><dt>Author</dt><dd>Adriaan de Jong <a href="#" onclick="location.href='mai'+'lto:'+'dej'+'on'+'g@f'+'ox'+'-it'+'.c'+'om'; return false;">dejon<span style="display: none;">.nosp@m.</span>g@fo<span style="display: none;">.nosp@m.</span>x-it.<span style="display: none;">.nosp@m.</span>com</a></dd></dl>
<p>Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: Apache-2.0</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at</p>
<p><a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>
<p>This file is part of mbed TLS (<a href="https://tls.mbed.org">https://tls.mbed.org</a>) </p>

<p class="definition">Definition in file <a class="el" href="md_8h_source.html">md.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="aa9f53b232ef244efb301233d111930dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9f53b232ef244efb301233d111930dc">&#9670;&nbsp;</a></span>MBEDTLS_DEPRECATED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_DEPRECATED</td>
        </tr>
      </table>
</div><div class="memdoc">

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

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

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

<p>Failed to allocate memory. </p>

<p class="definition">Definition at line <a class="el" href="md_8h_source.html#l00032">32</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p>

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

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

<p>Bad input parameters to function. </p>

<p class="definition">Definition at line <a class="el" href="md_8h_source.html#l00031">31</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p>

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

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

<p>The selected feature is not available. </p>

<p class="definition">Definition at line <a class="el" href="md_8h_source.html#l00030">30</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p>

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

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

<p>Opening or reading of file failed. </p>

<p class="definition">Definition at line <a class="el" href="md_8h_source.html#l00033">33</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_MD_MAX_SIZE&#160;&#160;&#160;32  /* longest known is SHA256 or less */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="md_8h_source.html#l00055">55</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Opaque struct defined in md_internal.h. </p>

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

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a219313cb40503ec3e34a857ab98b2296"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a219313cb40503ec3e34a857ab98b2296">&#9670;&nbsp;</a></span>mbedtls_md_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a219313cb40503ec3e34a857ab98b2296a564288006d735f75738021342ca5f9d1"></a>MBEDTLS_MD_NONE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a219313cb40503ec3e34a857ab98b2296af765a736e226d2832625c3267c8c2472"></a>MBEDTLS_MD_MD2&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a219313cb40503ec3e34a857ab98b2296a8f31ceaa511350d5da8393a7ce4a5704"></a>MBEDTLS_MD_MD4&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a219313cb40503ec3e34a857ab98b2296a14fbb8d456ae15f082c2360200cd50bf"></a>MBEDTLS_MD_MD5&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a219313cb40503ec3e34a857ab98b2296a800a5ff57003d84ac73f1aadeaaf00fe"></a>MBEDTLS_MD_SHA1&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a219313cb40503ec3e34a857ab98b2296a77e7fbd0fa5e31e7e1c9295928568f74"></a>MBEDTLS_MD_SHA224&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a219313cb40503ec3e34a857ab98b2296a7634aa1a264b0e1a5ec65f4ed77468f8"></a>MBEDTLS_MD_SHA256&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a219313cb40503ec3e34a857ab98b2296a39dd5c95e28fac45c3f18e55b11329cb"></a>MBEDTLS_MD_SHA384&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a219313cb40503ec3e34a857ab98b2296a0cdbe8272ceee7d63b2bfadd5ed05c26"></a>MBEDTLS_MD_SHA512&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a219313cb40503ec3e34a857ab98b2296a1c358adae154d70c5eb131efcb5d4caf"></a>MBEDTLS_MD_RIPEMD160&#160;</td><td class="fielddoc"></td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="md_8h_source.html#l00039">39</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *&#160;</td>
          <td class="paramname"><em>md_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ilen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Output = message_digest( input buffer ) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">md_info</td><td>message digest info </td></tr>
    <tr><td class="paramname">input</td><td>buffer holding the data </td></tr>
    <tr><td class="paramname">ilen</td><td>length of the input data </td></tr>
    <tr><td class="paramname">output</td><td>Generic message digest checksum result</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_clone </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clone the state of an MD context. </p>
<dl class="section note"><dt>Note</dt><dd>The two contexts must have been setup to the same type (cloning from SHA-256 to SHA-512 make no sense).</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Only clones the MD state, not the HMAC state! (for now)</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>The destination context </td></tr>
    <tr><td class="paramname">src</td><td>The context to be cloned</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>0</code> on success, <code>MBEDTLS_ERR_MD_BAD_INPUT_DATA</code> on parameter failure. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_finish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generic message digest final digest Called after <a class="el" href="md_8h.html#a7e50ce3a8c75b5221d07be657b93ca94" title="Generic message digest process buffer Called between mbedtls_md_starts() and mbedtls_md_finish(). ">mbedtls_md_update()</a>. </p>
<p>Usually followed by <a class="el" href="md_8h.html#af3248ddb6ad05035292fa92ac4af2587" title="Free and clear the internal structures of ctx. ">mbedtls_md_free()</a> or <a class="el" href="md_8h.html#a24483eff556810e3489ac6abefa328e6" title="Prepare the context to digest a new message. ">mbedtls_md_starts()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Generic message digest context </td></tr>
    <tr><td class="paramname">output</td><td>Generic message digest checksum result</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_md_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free and clear the internal structures of ctx. </p>
<p>Can be called at any time after <a class="el" href="md_8h.html#ad8b02927ca10552e3cbf293fa8c10e24" title="Initialize a md_context (as NONE) This should always be called first. ">mbedtls_md_init()</a>. Mandatory once <a class="el" href="md_8h.html#a1b858111212997b90bd7d2c71010a7ec" title="Select MD to use and allocate internal structures. ">mbedtls_md_setup()</a> has been called. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* mbedtls_md_get_name </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *&#160;</td>
          <td class="paramname"><em>md_info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the name of the message digest output. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">md_info</td><td>message digest info</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>name of the message digest output. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char mbedtls_md_get_size </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *&#160;</td>
          <td class="paramname"><em>md_info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the size of the message digest output. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">md_info</td><td>message digest info</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size of the message digest output in bytes. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a> mbedtls_md_get_type </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *&#160;</td>
          <td class="paramname"><em>md_info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the type of the message digest output. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">md_info</td><td>message digest info</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>type of the message digest output. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_hmac </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *&#160;</td>
          <td class="paramname"><em>md_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>keylen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ilen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Output = Generic_HMAC( hmac key, input buffer ) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">md_info</td><td>message digest info </td></tr>
    <tr><td class="paramname">key</td><td>HMAC secret key </td></tr>
    <tr><td class="paramname">keylen</td><td>length of the HMAC key in bytes </td></tr>
    <tr><td class="paramname">input</td><td>buffer holding the data </td></tr>
    <tr><td class="paramname">ilen</td><td>length of the input data </td></tr>
    <tr><td class="paramname">output</td><td>Generic HMAC-result</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_hmac_finish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Output HMAC. </p>
<p>Called after <a class="el" href="md_8h.html#a86cbea1c3bcd558a7e185ff8200a29a6" title="Generic HMAC process buffer. ">mbedtls_md_hmac_update()</a>. Usually followed by <a class="el" href="md_8h.html#a3a5c64b5bda0f294e917ccd5a8ca234e" title="Prepare to authenticate a new message with the same key. ">mbedtls_md_hmac_reset()</a>, <a class="el" href="md_8h.html#a8968f8659fc277f013374c1bac8d4d1a" title="Set HMAC key and prepare to authenticate a new message. ">mbedtls_md_hmac_starts()</a>, or <a class="el" href="md_8h.html#af3248ddb6ad05035292fa92ac4af2587" title="Free and clear the internal structures of ctx. ">mbedtls_md_free()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>HMAC context </td></tr>
    <tr><td class="paramname">output</td><td>Generic HMAC checksum result</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_hmac_reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prepare to authenticate a new message with the same key. </p>
<p>Called after <a class="el" href="md_8h.html#a7aeafef80c89e47ee3033035a6a75a27" title="Output HMAC. ">mbedtls_md_hmac_finish()</a> and before <a class="el" href="md_8h.html#a86cbea1c3bcd558a7e185ff8200a29a6" title="Generic HMAC process buffer. ">mbedtls_md_hmac_update()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>HMAC context to be reset</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_hmac_starts </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>keylen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set HMAC key and prepare to authenticate a new message. </p>
<p>Usually called after <a class="el" href="md_8h.html#a1b858111212997b90bd7d2c71010a7ec" title="Select MD to use and allocate internal structures. ">mbedtls_md_setup()</a> or <a class="el" href="md_8h.html#a7aeafef80c89e47ee3033035a6a75a27" title="Output HMAC. ">mbedtls_md_hmac_finish()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>HMAC context </td></tr>
    <tr><td class="paramname">key</td><td>HMAC secret key </td></tr>
    <tr><td class="paramname">keylen</td><td>length of the HMAC key in bytes</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_hmac_update </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ilen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generic HMAC process buffer. </p>
<p>Called between <a class="el" href="md_8h.html#a8968f8659fc277f013374c1bac8d4d1a" title="Set HMAC key and prepare to authenticate a new message. ">mbedtls_md_hmac_starts()</a> or <a class="el" href="md_8h.html#a3a5c64b5bda0f294e917ccd5a8ca234e" title="Prepare to authenticate a new message with the same key. ">mbedtls_md_hmac_reset()</a> and <a class="el" href="md_8h.html#a7aeafef80c89e47ee3033035a6a75a27" title="Output HMAC. ">mbedtls_md_hmac_finish()</a>. May be called repeatedly.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>HMAC context </td></tr>
    <tr><td class="paramname">input</td><td>buffer holding the data </td></tr>
    <tr><td class="paramname">ilen</td><td>length of the input data</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a>* mbedtls_md_info_from_string </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>md_name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the message digest information associated with the given digest name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">md_name</td><td>Name of the digest to search for.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The message digest information associated with md_name or NULL if not found. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a>* mbedtls_md_info_from_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a>&#160;</td>
          <td class="paramname"><em>md_type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the message digest information associated with the given digest type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">md_type</td><td>type of digest to search for.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The message digest information associated with md_type or NULL if not found. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_md_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a md_context (as NONE) This should always be called first. </p>
<p>Prepares the context for <a class="el" href="md_8h.html#a1b858111212997b90bd7d2c71010a7ec" title="Select MD to use and allocate internal structures. ">mbedtls_md_setup()</a> or <a class="el" href="md_8h.html#af3248ddb6ad05035292fa92ac4af2587" title="Free and clear the internal structures of ctx. ">mbedtls_md_free()</a>. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_init_ctx </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *&#160;</td>
          <td class="paramname"><em>md_info</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select MD to use and allocate internal structures. </p>
<p>Should be called after <a class="el" href="md_8h.html#ad8b02927ca10552e3cbf293fa8c10e24" title="Initialize a md_context (as NONE) This should always be called first. ">mbedtls_md_init()</a> or <a class="el" href="md_8h.html#af3248ddb6ad05035292fa92ac4af2587" title="Free and clear the internal structures of ctx. ">mbedtls_md_free()</a>. Makes it necessary to call <a class="el" href="md_8h.html#af3248ddb6ad05035292fa92ac4af2587" title="Free and clear the internal structures of ctx. ">mbedtls_md_free()</a> later.</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000005">Deprecated:</a></b></dt><dd>Superseded by <a class="el" href="md_8h.html#a1b858111212997b90bd7d2c71010a7ec" title="Select MD to use and allocate internal structures. ">mbedtls_md_setup()</a> in 2.0.0</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Context to set up. </td></tr>
    <tr><td class="paramname">md_info</td><td>Message digest to use.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>0</code> on success, <code>MBEDTLS_ERR_MD_BAD_INPUT_DATA</code> on parameter failure, <code>MBEDTLS_ERR_MD_ALLOC_FAILED</code> memory allocation failure. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int* mbedtls_md_list </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the list of digests supported by the generic digest module. </p>
<dl class="section return"><dt>Returns</dt><dd>a statically allocated array of digests, the last entry is 0. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_process </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_setup </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="md_8h.html#a496e73a6f229eba89b4abd9955822adb">mbedtls_md_info_t</a> *&#160;</td>
          <td class="paramname"><em>md_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>hmac</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select MD to use and allocate internal structures. </p>
<p>Should be called after <a class="el" href="md_8h.html#ad8b02927ca10552e3cbf293fa8c10e24" title="Initialize a md_context (as NONE) This should always be called first. ">mbedtls_md_init()</a> or <a class="el" href="md_8h.html#af3248ddb6ad05035292fa92ac4af2587" title="Free and clear the internal structures of ctx. ">mbedtls_md_free()</a>. Makes it necessary to call <a class="el" href="md_8h.html#af3248ddb6ad05035292fa92ac4af2587" title="Free and clear the internal structures of ctx. ">mbedtls_md_free()</a> later.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Context to set up. </td></tr>
    <tr><td class="paramname">md_info</td><td>Message digest to use. </td></tr>
    <tr><td class="paramname">hmac</td><td>0 to save some memory if HMAC will not be used, non-zero is HMAC is going to be used with this context.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>0</code> on success, <code>MBEDTLS_ERR_MD_BAD_INPUT_DATA</code> on parameter failure, <code>MBEDTLS_ERR_MD_ALLOC_FAILED</code> memory allocation failure. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_starts </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prepare the context to digest a new message. </p>
<p>Generally called after <a class="el" href="md_8h.html#a1b858111212997b90bd7d2c71010a7ec" title="Select MD to use and allocate internal structures. ">mbedtls_md_setup()</a> or <a class="el" href="md_8h.html#adf77ab9b0f117367883988ee5f0af1f4" title="Generic message digest final digest Called after mbedtls_md_update(). ">mbedtls_md_finish()</a>. Followed by <a class="el" href="md_8h.html#a7e50ce3a8c75b5221d07be657b93ca94" title="Generic message digest process buffer Called between mbedtls_md_starts() and mbedtls_md_finish(). ">mbedtls_md_update()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>generic message digest context.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_md_update </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__md__context__t.html">mbedtls_md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ilen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generic message digest process buffer Called between <a class="el" href="md_8h.html#a24483eff556810e3489ac6abefa328e6" title="Prepare the context to digest a new message. ">mbedtls_md_starts()</a> and <a class="el" href="md_8h.html#adf77ab9b0f117367883988ee5f0af1f4" title="Generic message digest final digest Called after mbedtls_md_update(). ">mbedtls_md_finish()</a>. </p>
<p>May be called repeatedly.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Generic message digest context </td></tr>
    <tr><td class="paramname">input</td><td>buffer holding the datal </td></tr>
    <tr><td class="paramname">ilen</td><td>length of the input data</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Dec 28 2017 18:33:30 for mbed TLS v2.6.0 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>