Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 9e72f3e7ecf68cce016a7c5c59e863d3 > files > 572

lib64polarssl-devel-1.3.8-1.mga4.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.5"/>
<title>PolarSSL v1.3.8: 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 style="padding-left: 0.5em;">
   <div id="projectname">PolarSSL v1.3.8
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_6a9bbd12bf4e19a18c45e270f8fae3fd.html">include</a></li><li class="navelem"><a class="el" href="dir_04272d44da4745cf8b8bfc767d6c6523.html">polarssl</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="#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;string.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">
</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="structmd__info__t.html">md_info_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Message digest information.  <a href="structmd__info__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__context__t.html">md_context_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic message digest context.  <a href="structmd__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:ab39743e52520134a277e9141a6098e3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ab39743e52520134a277e9141a6098e3e">POLARSSL_ERR_MD_FEATURE_UNAVAILABLE</a>&#160;&#160;&#160;-0x5080</td></tr>
<tr class="memdesc:ab39743e52520134a277e9141a6098e3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The selected feature is not available.  <a href="#ab39743e52520134a277e9141a6098e3e">More...</a><br/></td></tr>
<tr class="separator:ab39743e52520134a277e9141a6098e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5508cadb87f35ff11cd08a1a06f227f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ab5508cadb87f35ff11cd08a1a06f227f">POLARSSL_ERR_MD_BAD_INPUT_DATA</a>&#160;&#160;&#160;-0x5100</td></tr>
<tr class="memdesc:ab5508cadb87f35ff11cd08a1a06f227f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bad input parameters to function.  <a href="#ab5508cadb87f35ff11cd08a1a06f227f">More...</a><br/></td></tr>
<tr class="separator:ab5508cadb87f35ff11cd08a1a06f227f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad767a78d57c228eee2917bc5ffd8096c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ad767a78d57c228eee2917bc5ffd8096c">POLARSSL_ERR_MD_ALLOC_FAILED</a>&#160;&#160;&#160;-0x5180</td></tr>
<tr class="memdesc:ad767a78d57c228eee2917bc5ffd8096c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Failed to allocate memory.  <a href="#ad767a78d57c228eee2917bc5ffd8096c">More...</a><br/></td></tr>
<tr class="separator:ad767a78d57c228eee2917bc5ffd8096c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a5aabd94dcc264d8a2e4e335eb995c9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a6a5aabd94dcc264d8a2e4e335eb995c9">POLARSSL_ERR_MD_FILE_IO_ERROR</a>&#160;&#160;&#160;-0x5200</td></tr>
<tr class="memdesc:a6a5aabd94dcc264d8a2e4e335eb995c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opening or reading of file failed.  <a href="#a6a5aabd94dcc264d8a2e4e335eb995c9">More...</a><br/></td></tr>
<tr class="separator:a6a5aabd94dcc264d8a2e4e335eb995c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38c76a15d6a3874f898f3dc60750dde1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a38c76a15d6a3874f898f3dc60750dde1">POLARSSL_MD_MAX_SIZE</a>&#160;&#160;&#160;32  /* longest known is SHA256 or less */</td></tr>
<tr class="separator:a38c76a15d6a3874f898f3dc60750dde1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45b0c403a33ff1f73947597785cf5ca7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a45b0c403a33ff1f73947597785cf5ca7">MD_CONTEXT_T_INIT</a></td></tr>
<tr class="separator:a45b0c403a33ff1f73947597785cf5ca7"><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:af1fbbb67afa0daee4090cde8864e0b68"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> { <br/>
&#160;&#160;<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68a1058b903a7b49716f1b75cca6e80c4e8">POLARSSL_MD_NONE</a> =0, 
<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68a8cee399348deda81a3a9387f5f62c4ed">POLARSSL_MD_MD2</a>, 
<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68a950750fc672ded2a047cdcbc7a882056">POLARSSL_MD_MD4</a>, 
<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68a0d510303f8b4b1c116d221885e2e2362">POLARSSL_MD_MD5</a>, 
<br/>
&#160;&#160;<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68a3d59000e02cfa0867e14002d95046335">POLARSSL_MD_SHA1</a>, 
<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68a189a54c5ec3192fa118f99b7700f63e9">POLARSSL_MD_SHA224</a>, 
<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68aff5f5aee7490eb80eb5605eaf309bde2">POLARSSL_MD_SHA256</a>, 
<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68a45ba66979c5c1af786e9fb4fa5820960">POLARSSL_MD_SHA384</a>, 
<br/>
&#160;&#160;<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68aff33aab12be4e789a70ff84825c09e3b">POLARSSL_MD_SHA512</a>, 
<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68ad5febc58217d33ff1a980b5c0dd49c5a">POLARSSL_MD_RIPEMD160</a>
<br/>
 }</td></tr>
<tr class="separator:af1fbbb67afa0daee4090cde8864e0b68"><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:a5d1f7e44d913c6621403773374b89b3e"><td class="memItemLeft" align="right" valign="top">const int *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a5d1f7e44d913c6621403773374b89b3e">md_list</a> (void)</td></tr>
<tr class="memdesc:a5d1f7e44d913c6621403773374b89b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the list of digests supported by the generic digest module.  <a href="#a5d1f7e44d913c6621403773374b89b3e">More...</a><br/></td></tr>
<tr class="separator:a5d1f7e44d913c6621403773374b89b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fa2d1cb9d20d49cf0a1d26bb2080b81"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmd__info__t.html">md_info_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a7fa2d1cb9d20d49cf0a1d26bb2080b81">md_info_from_string</a> (const char *md_name)</td></tr>
<tr class="memdesc:a7fa2d1cb9d20d49cf0a1d26bb2080b81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the message digest information associated with the given digest name.  <a href="#a7fa2d1cb9d20d49cf0a1d26bb2080b81">More...</a><br/></td></tr>
<tr class="separator:a7fa2d1cb9d20d49cf0a1d26bb2080b81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a622c94870533dc68f54b8df520d2c6d9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmd__info__t.html">md_info_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a622c94870533dc68f54b8df520d2c6d9">md_info_from_type</a> (<a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> md_type)</td></tr>
<tr class="memdesc:a622c94870533dc68f54b8df520d2c6d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the message digest information associated with the given digest type.  <a href="#a622c94870533dc68f54b8df520d2c6d9">More...</a><br/></td></tr>
<tr class="separator:a622c94870533dc68f54b8df520d2c6d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae75802b88b5126acc245530be7d9607b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ae75802b88b5126acc245530be7d9607b">md_init</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx)</td></tr>
<tr class="memdesc:ae75802b88b5126acc245530be7d9607b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a md_context (as NONE)  <a href="#ae75802b88b5126acc245530be7d9607b">More...</a><br/></td></tr>
<tr class="separator:ae75802b88b5126acc245530be7d9607b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4b9dc3bf86a40ac6829eba973b8579e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ac4b9dc3bf86a40ac6829eba973b8579e">md_free</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx)</td></tr>
<tr class="memdesc:ac4b9dc3bf86a40ac6829eba973b8579e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free and clear the message-specific context of ctx.  <a href="#ac4b9dc3bf86a40ac6829eba973b8579e">More...</a><br/></td></tr>
<tr class="separator:ac4b9dc3bf86a40ac6829eba973b8579e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c956b5c92531111312324c91b6d83f9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a7c956b5c92531111312324c91b6d83f9">md_init_ctx</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx, const <a class="el" href="structmd__info__t.html">md_info_t</a> *md_info)</td></tr>
<tr class="memdesc:a7c956b5c92531111312324c91b6d83f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialises and fills the message digest context structure with the appropriate values.  <a href="#a7c956b5c92531111312324c91b6d83f9">More...</a><br/></td></tr>
<tr class="separator:a7c956b5c92531111312324c91b6d83f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3312061daf9ecc722c025cdbee9c38cc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a3312061daf9ecc722c025cdbee9c38cc">md_free_ctx</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx)</td></tr>
<tr class="memdesc:a3312061daf9ecc722c025cdbee9c38cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the message-specific context of ctx.  <a href="#a3312061daf9ecc722c025cdbee9c38cc">More...</a><br/></td></tr>
<tr class="separator:a3312061daf9ecc722c025cdbee9c38cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e688fee63e53a616d031d6319c07372"><td class="memItemLeft" align="right" valign="top">static unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a3e688fee63e53a616d031d6319c07372">md_get_size</a> (const <a class="el" href="structmd__info__t.html">md_info_t</a> *md_info)</td></tr>
<tr class="memdesc:a3e688fee63e53a616d031d6319c07372"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the message digest output.  <a href="#a3e688fee63e53a616d031d6319c07372">More...</a><br/></td></tr>
<tr class="separator:a3e688fee63e53a616d031d6319c07372"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ee533b0b5982099a1c21563cceb13a2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a9ee533b0b5982099a1c21563cceb13a2">md_get_type</a> (const <a class="el" href="structmd__info__t.html">md_info_t</a> *md_info)</td></tr>
<tr class="memdesc:a9ee533b0b5982099a1c21563cceb13a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the type of the message digest output.  <a href="#a9ee533b0b5982099a1c21563cceb13a2">More...</a><br/></td></tr>
<tr class="separator:a9ee533b0b5982099a1c21563cceb13a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43934282608bdb54740410336fdffc60"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a43934282608bdb54740410336fdffc60">md_get_name</a> (const <a class="el" href="structmd__info__t.html">md_info_t</a> *md_info)</td></tr>
<tr class="memdesc:a43934282608bdb54740410336fdffc60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the message digest output.  <a href="#a43934282608bdb54740410336fdffc60">More...</a><br/></td></tr>
<tr class="separator:a43934282608bdb54740410336fdffc60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4362ff554b0e3b934a1e3c3b6496fa42"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a4362ff554b0e3b934a1e3c3b6496fa42">md_starts</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx)</td></tr>
<tr class="memdesc:a4362ff554b0e3b934a1e3c3b6496fa42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set-up the given context for a new message digest.  <a href="#a4362ff554b0e3b934a1e3c3b6496fa42">More...</a><br/></td></tr>
<tr class="separator:a4362ff554b0e3b934a1e3c3b6496fa42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeee048646a981f3aa4810609e3bf8787"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#aeee048646a981f3aa4810609e3bf8787">md_update</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx, const unsigned char *input, size_t ilen)</td></tr>
<tr class="memdesc:aeee048646a981f3aa4810609e3bf8787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic message digest process buffer.  <a href="#aeee048646a981f3aa4810609e3bf8787">More...</a><br/></td></tr>
<tr class="separator:aeee048646a981f3aa4810609e3bf8787"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8d5acb64d8b392ab9e957e1368644ed"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ac8d5acb64d8b392ab9e957e1368644ed">md_finish</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx, unsigned char *output)</td></tr>
<tr class="memdesc:ac8d5acb64d8b392ab9e957e1368644ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic message digest final digest.  <a href="#ac8d5acb64d8b392ab9e957e1368644ed">More...</a><br/></td></tr>
<tr class="separator:ac8d5acb64d8b392ab9e957e1368644ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae13853f5988bdef5c27ee475ba1295f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#aae13853f5988bdef5c27ee475ba1295f">md</a> (const <a class="el" href="structmd__info__t.html">md_info_t</a> *md_info, const unsigned char *input, size_t ilen, unsigned char *output)</td></tr>
<tr class="memdesc:aae13853f5988bdef5c27ee475ba1295f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output = message_digest( input buffer )  <a href="#aae13853f5988bdef5c27ee475ba1295f">More...</a><br/></td></tr>
<tr class="separator:aae13853f5988bdef5c27ee475ba1295f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa00ef1f33bec9fda7083115fb507e193"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#aa00ef1f33bec9fda7083115fb507e193">md_file</a> (const <a class="el" href="structmd__info__t.html">md_info_t</a> *md_info, const char *path, unsigned char *output)</td></tr>
<tr class="memdesc:aa00ef1f33bec9fda7083115fb507e193"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output = message_digest( file contents )  <a href="#aa00ef1f33bec9fda7083115fb507e193">More...</a><br/></td></tr>
<tr class="separator:aa00ef1f33bec9fda7083115fb507e193"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8debd6277357faa47333bb4919b82058"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a8debd6277357faa47333bb4919b82058">md_hmac_starts</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx, const unsigned char *key, size_t keylen)</td></tr>
<tr class="memdesc:a8debd6277357faa47333bb4919b82058"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic HMAC context setup.  <a href="#a8debd6277357faa47333bb4919b82058">More...</a><br/></td></tr>
<tr class="separator:a8debd6277357faa47333bb4919b82058"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a371673a6250979460217e4e74a0d33"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a4a371673a6250979460217e4e74a0d33">md_hmac_update</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx, const unsigned char *input, size_t ilen)</td></tr>
<tr class="memdesc:a4a371673a6250979460217e4e74a0d33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic HMAC process buffer.  <a href="#a4a371673a6250979460217e4e74a0d33">More...</a><br/></td></tr>
<tr class="separator:a4a371673a6250979460217e4e74a0d33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4d71986a47097a6c320965c9656c81e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ae4d71986a47097a6c320965c9656c81e">md_hmac_finish</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx, unsigned char *output)</td></tr>
<tr class="memdesc:ae4d71986a47097a6c320965c9656c81e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic HMAC final digest.  <a href="#ae4d71986a47097a6c320965c9656c81e">More...</a><br/></td></tr>
<tr class="separator:ae4d71986a47097a6c320965c9656c81e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2731cd88efb4f40f948789766cde73da"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#a2731cd88efb4f40f948789766cde73da">md_hmac_reset</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx)</td></tr>
<tr class="memdesc:a2731cd88efb4f40f948789766cde73da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic HMAC context reset.  <a href="#a2731cd88efb4f40f948789766cde73da">More...</a><br/></td></tr>
<tr class="separator:a2731cd88efb4f40f948789766cde73da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad05947898bd5b20b3fd5f88f538932c8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ad05947898bd5b20b3fd5f88f538932c8">md_hmac</a> (const <a class="el" href="structmd__info__t.html">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:ad05947898bd5b20b3fd5f88f538932c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output = Generic_HMAC( hmac key, input buffer )  <a href="#ad05947898bd5b20b3fd5f88f538932c8">More...</a><br/></td></tr>
<tr class="separator:ad05947898bd5b20b3fd5f88f538932c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6420107a39b25a6b5f0e7594338ef10"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="md_8h.html#ac6420107a39b25a6b5f0e7594338ef10">md_process</a> (<a class="el" href="structmd__context__t.html">md_context_t</a> *ctx, const unsigned char *data)</td></tr>
<tr class="separator:ac6420107a39b25a6b5f0e7594338ef10"><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-2014, Brainspark B.V.</p>
<p>This file is part of PolarSSL (<a href="http://www.polarssl.org">http://www.polarssl.org</a>) Lead Maintainer: Paul Bakker &lt;polarssl_maintainer at polarssl.org&gt;</p>
<p>All rights reserved.</p>
<p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.</p>
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
<p>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. </p>

<p>Definition in file <a class="el" href="md_8h_source.html">md.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a45b0c403a33ff1f73947597785cf5ca7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MD_CONTEXT_T_INIT</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">{ \</div>
<div class="line">    NULL, <span class="comment">/* md_info */</span> \</div>
<div class="line">    NULL, <span class="comment">/* md_ctx */</span> \</div>
<div class="line">}</div>
</div><!-- fragment -->
<p>Definition at line <a class="el" href="md_8h_source.html#l00140">140</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad767a78d57c228eee2917bc5ffd8096c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define POLARSSL_ERR_MD_ALLOC_FAILED&#160;&#160;&#160;-0x5180</td>
        </tr>
      </table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="ab5508cadb87f35ff11cd08a1a06f227f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define POLARSSL_ERR_MD_BAD_INPUT_DATA&#160;&#160;&#160;-0x5100</td>
        </tr>
      </table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="ab39743e52520134a277e9141a6098e3e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define POLARSSL_ERR_MD_FEATURE_UNAVAILABLE&#160;&#160;&#160;-0x5080</td>
        </tr>
      </table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="a6a5aabd94dcc264d8a2e4e335eb995c9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define POLARSSL_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>Definition at line <a class="el" href="md_8h_source.html#l00045">45</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p>

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

<p>Definition at line <a class="el" href="md_8h_source.html#l00067">67</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 class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">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"><em><a class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68a1058b903a7b49716f1b75cca6e80c4e8"></a>POLARSSL_MD_NONE</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68a8cee399348deda81a3a9387f5f62c4ed"></a>POLARSSL_MD_MD2</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68a950750fc672ded2a047cdcbc7a882056"></a>POLARSSL_MD_MD4</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68a0d510303f8b4b1c116d221885e2e2362"></a>POLARSSL_MD_MD5</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68a3d59000e02cfa0867e14002d95046335"></a>POLARSSL_MD_SHA1</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68a189a54c5ec3192fa118f99b7700f63e9"></a>POLARSSL_MD_SHA224</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68aff5f5aee7490eb80eb5605eaf309bde2"></a>POLARSSL_MD_SHA256</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68a45ba66979c5c1af786e9fb4fa5820960"></a>POLARSSL_MD_SHA384</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68aff33aab12be4e789a70ff84825c09e3b"></a>POLARSSL_MD_SHA512</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="af1fbbb67afa0daee4090cde8864e0b68ad5febc58217d33ff1a980b5c0dd49c5a"></a>POLARSSL_MD_RIPEMD160</em>&nbsp;</td><td class="fielddoc">
</td></tr>
</table>

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

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="aae13853f5988bdef5c27ee475ba1295f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmd__info__t.html">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, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

</div>
</div>
<a class="anchor" id="aa00ef1f33bec9fda7083115fb507e193"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_file </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmd__info__t.html">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 char *&#160;</td>
          <td class="paramname"><em>path</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( file contents ) </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">path</td><td>input file name </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 if successful, POLARSSL_ERR_MD_FILE_OPEN_FAILED if fopen failed, POLARSSL_ERR_MD_FILE_READ_FAILED if fread failed, POLARSSL_ERR_MD_BAD_INPUT_DATA if md_info was NULL. </dd></dl>

</div>
</div>
<a class="anchor" id="ac8d5acb64d8b392ab9e957e1368644ed"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_finish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">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. </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, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

</div>
</div>
<a class="anchor" id="ac4b9dc3bf86a40ac6829eba973b8579e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void md_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">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 message-specific context of ctx. </p>
<p>Freeing ctx itself remains the responsibility of the caller. </p>

</div>
</div>
<a class="anchor" id="a3312061daf9ecc722c025cdbee9c38cc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_free_ctx </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">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 the message-specific context of ctx. </p>
<p>Freeing ctx itself remains the responsibility of the caller.</p>
<dl class="section note"><dt>Note</dt><dd>Deprecated: Redirects to <a class="el" href="md_8h.html#ac4b9dc3bf86a40ac6829eba973b8579e" title="Free and clear the message-specific context of ctx. ">md_free()</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Free the message-specific context</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 </dd></dl>

</div>
</div>
<a class="anchor" id="a43934282608bdb54740410336fdffc60"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* md_get_name </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmd__info__t.html">md_info_t</a> *&#160;</td>
          <td class="paramname"><em>md_info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </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>

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

<p>References <a class="el" href="md_8h_source.html#l00079">md_info_t::name</a>.</p>

</div>
</div>
<a class="anchor" id="a3e688fee63e53a616d031d6319c07372"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned char md_get_size </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmd__info__t.html">md_info_t</a> *&#160;</td>
          <td class="paramname"><em>md_info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </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. </dd></dl>

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

<p>References <a class="el" href="md_8h_source.html#l00082">md_info_t::size</a>.</p>

</div>
</div>
<a class="anchor" id="a9ee533b0b5982099a1c21563cceb13a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> md_get_type </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmd__info__t.html">md_info_t</a> *&#160;</td>
          <td class="paramname"><em>md_info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </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>

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

<p>References <a class="el" href="md_8h_source.html#l00052">POLARSSL_MD_NONE</a>, and <a class="el" href="md_8h_source.html#l00076">md_info_t::type</a>.</p>

</div>
</div>
<a class="anchor" id="ad05947898bd5b20b3fd5f88f538932c8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_hmac </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmd__info__t.html">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 </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, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

</div>
</div>
<a class="anchor" id="ae4d71986a47097a6c320965c9656c81e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_hmac_finish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">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 HMAC final digest. </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, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

</div>
</div>
<a class="anchor" id="a2731cd88efb4f40f948789766cde73da"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_hmac_reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generic HMAC context reset. </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, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

</div>
</div>
<a class="anchor" id="a8debd6277357faa47333bb4919b82058"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_hmac_starts </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">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>Generic HMAC context setup. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>HMAC context to be initialized </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</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

</div>
</div>
<a class="anchor" id="a4a371673a6250979460217e4e74a0d33"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_hmac_update </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">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>
<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, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

</div>
</div>
<a class="anchor" id="a7fa2d1cb9d20d49cf0a1d26bb2080b81"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmd__info__t.html">md_info_t</a>* 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 class="anchor" id="a622c94870533dc68f54b8df520d2c6d9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmd__info__t.html">md_info_t</a>* md_info_from_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">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 class="anchor" id="ae75802b88b5126acc245530be7d9607b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void md_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">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) </p>

</div>
</div>
<a class="anchor" id="a7c956b5c92531111312324c91b6d83f9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_init_ctx </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">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="structmd__info__t.html">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>Initialises and fills the message digest context structure with the appropriate values. </p>
<dl class="section note"><dt>Note</dt><dd>Currently also clears structure. In future versions you will be required to call <a class="el" href="md_8h.html#ae75802b88b5126acc245530be7d9607b" title="Initialize a md_context (as NONE) ">md_init()</a> on the structure first.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>context to initialise. May not be NULL. The digest-specific context (ctx-&gt;md_ctx) must be NULL. It will be allocated, and must be freed using <a class="el" href="md_8h.html#a3312061daf9ecc722c025cdbee9c38cc" title="Free the message-specific context of ctx. ">md_free_ctx()</a> later. </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>POLARSSL_ERR_MD_BAD_INPUT_DATA</code> on parameter failure, <code>POLARSSL_ERR_MD_ALLOC_FAILED</code> if allocation of the digest-specific context failed. </dd></dl>

</div>
</div>
<a class="anchor" id="a5d1f7e44d913c6621403773374b89b3e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int* 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 class="anchor" id="ac6420107a39b25a6b5f0e7594338ef10"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_process </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">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 class="anchor" id="a4362ff554b0e3b934a1e3c3b6496fa42"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_starts </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">md_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set-up the given context for a new message digest. </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, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails. </dd></dl>

</div>
</div>
<a class="anchor" id="aeee048646a981f3aa4810609e3bf8787"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int md_update </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmd__context__t.html">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. </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, POLARSSL_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 Jul 31 2014 11:35:56 for PolarSSL v1.3.8 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>