<!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_info_t Struct 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 Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-attribs">Data Fields</a> </div> <div class="headertitle"> <div class="title">md_info_t Struct Reference</div> </div> </div><!--header--> <div class="contents"> <p>Message digest information. <a href="structmd__info__t.html#details">More...</a></p> <p><code>#include <<a class="el" href="md_8h_source.html">md.h</a>></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a> Data Fields</h2></td></tr> <tr class="memitem:a280fbe7109a7d7a484aab54cea6bc60f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a280fbe7109a7d7a484aab54cea6bc60f">type</a></td></tr> <tr class="memdesc:a280fbe7109a7d7a484aab54cea6bc60f"><td class="mdescLeft"> </td><td class="mdescRight">Digest identifier. <a href="#a280fbe7109a7d7a484aab54cea6bc60f">More...</a><br/></td></tr> <tr class="separator:a280fbe7109a7d7a484aab54cea6bc60f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6b5bff099db82e42620f30627f55c923"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a6b5bff099db82e42620f30627f55c923">name</a></td></tr> <tr class="memdesc:a6b5bff099db82e42620f30627f55c923"><td class="mdescLeft"> </td><td class="mdescRight">Name of the message digest. <a href="#a6b5bff099db82e42620f30627f55c923">More...</a><br/></td></tr> <tr class="separator:a6b5bff099db82e42620f30627f55c923"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aedb1e12797791c9b7f5545bda6e3172d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#aedb1e12797791c9b7f5545bda6e3172d">size</a></td></tr> <tr class="memdesc:aedb1e12797791c9b7f5545bda6e3172d"><td class="mdescLeft"> </td><td class="mdescRight">Output length of the digest function. <a href="#aedb1e12797791c9b7f5545bda6e3172d">More...</a><br/></td></tr> <tr class="separator:aedb1e12797791c9b7f5545bda6e3172d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac1863363a6ef0b82ce5e44edc03a3eeb"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#ac1863363a6ef0b82ce5e44edc03a3eeb">starts_func</a> )(void *ctx)</td></tr> <tr class="memdesc:ac1863363a6ef0b82ce5e44edc03a3eeb"><td class="mdescLeft"> </td><td class="mdescRight">Digest initialisation function. <a href="#ac1863363a6ef0b82ce5e44edc03a3eeb">More...</a><br/></td></tr> <tr class="separator:ac1863363a6ef0b82ce5e44edc03a3eeb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2cd91bef2cf32cf32a9f3e7cc982b944"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a2cd91bef2cf32cf32a9f3e7cc982b944">update_func</a> )(void *ctx, const unsigned char *input, size_t ilen)</td></tr> <tr class="memdesc:a2cd91bef2cf32cf32a9f3e7cc982b944"><td class="mdescLeft"> </td><td class="mdescRight">Digest update function. <a href="#a2cd91bef2cf32cf32a9f3e7cc982b944">More...</a><br/></td></tr> <tr class="separator:a2cd91bef2cf32cf32a9f3e7cc982b944"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a38a8a267d65c5ef81ae7b9c8429c10fb"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a38a8a267d65c5ef81ae7b9c8429c10fb">finish_func</a> )(void *ctx, unsigned char *output)</td></tr> <tr class="memdesc:a38a8a267d65c5ef81ae7b9c8429c10fb"><td class="mdescLeft"> </td><td class="mdescRight">Digest finalisation function. <a href="#a38a8a267d65c5ef81ae7b9c8429c10fb">More...</a><br/></td></tr> <tr class="separator:a38a8a267d65c5ef81ae7b9c8429c10fb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5b7d4307d341192931285ce12abd69d7"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a5b7d4307d341192931285ce12abd69d7">digest_func</a> )(const unsigned char *input, size_t ilen, unsigned char *output)</td></tr> <tr class="memdesc:a5b7d4307d341192931285ce12abd69d7"><td class="mdescLeft"> </td><td class="mdescRight">Generic digest function. <a href="#a5b7d4307d341192931285ce12abd69d7">More...</a><br/></td></tr> <tr class="separator:a5b7d4307d341192931285ce12abd69d7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a44f961fa2c2ea3772fa12cadc70d5745"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a44f961fa2c2ea3772fa12cadc70d5745">file_func</a> )(const char *path, unsigned char *output)</td></tr> <tr class="memdesc:a44f961fa2c2ea3772fa12cadc70d5745"><td class="mdescLeft"> </td><td class="mdescRight">Generic file digest function. <a href="#a44f961fa2c2ea3772fa12cadc70d5745">More...</a><br/></td></tr> <tr class="separator:a44f961fa2c2ea3772fa12cadc70d5745"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a956bae10447800b0336bd4d676d33e88"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a956bae10447800b0336bd4d676d33e88">hmac_starts_func</a> )(void *ctx, const unsigned char *key, size_t keylen)</td></tr> <tr class="memdesc:a956bae10447800b0336bd4d676d33e88"><td class="mdescLeft"> </td><td class="mdescRight">HMAC Initialisation function. <a href="#a956bae10447800b0336bd4d676d33e88">More...</a><br/></td></tr> <tr class="separator:a956bae10447800b0336bd4d676d33e88"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2d8009022839e33d166e953095cc15c2"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a2d8009022839e33d166e953095cc15c2">hmac_update_func</a> )(void *ctx, const unsigned char *input, size_t ilen)</td></tr> <tr class="memdesc:a2d8009022839e33d166e953095cc15c2"><td class="mdescLeft"> </td><td class="mdescRight">HMAC update function. <a href="#a2d8009022839e33d166e953095cc15c2">More...</a><br/></td></tr> <tr class="separator:a2d8009022839e33d166e953095cc15c2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aaef8d466fdbba4d5c33df7a03f7fa38c"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#aaef8d466fdbba4d5c33df7a03f7fa38c">hmac_finish_func</a> )(void *ctx, unsigned char *output)</td></tr> <tr class="memdesc:aaef8d466fdbba4d5c33df7a03f7fa38c"><td class="mdescLeft"> </td><td class="mdescRight">HMAC finalisation function. <a href="#aaef8d466fdbba4d5c33df7a03f7fa38c">More...</a><br/></td></tr> <tr class="separator:aaef8d466fdbba4d5c33df7a03f7fa38c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7cc43c08aa22335ba399442ed30ad88e"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a7cc43c08aa22335ba399442ed30ad88e">hmac_reset_func</a> )(void *ctx)</td></tr> <tr class="memdesc:a7cc43c08aa22335ba399442ed30ad88e"><td class="mdescLeft"> </td><td class="mdescRight">HMAC context reset function. <a href="#a7cc43c08aa22335ba399442ed30ad88e">More...</a><br/></td></tr> <tr class="separator:a7cc43c08aa22335ba399442ed30ad88e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad59c9fd57a1098c597ee8466e867a8a6"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#ad59c9fd57a1098c597ee8466e867a8a6">hmac_func</a> )(const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char *output)</td></tr> <tr class="memdesc:ad59c9fd57a1098c597ee8466e867a8a6"><td class="mdescLeft"> </td><td class="mdescRight">Generic HMAC function. <a href="#ad59c9fd57a1098c597ee8466e867a8a6">More...</a><br/></td></tr> <tr class="separator:ad59c9fd57a1098c597ee8466e867a8a6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acb98f8c6485ad2036d1fa99c7c1f06ca"><td class="memItemLeft" align="right" valign="top">void *(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#acb98f8c6485ad2036d1fa99c7c1f06ca">ctx_alloc_func</a> )(void)</td></tr> <tr class="memdesc:acb98f8c6485ad2036d1fa99c7c1f06ca"><td class="mdescLeft"> </td><td class="mdescRight">Allocate a new context. <a href="#acb98f8c6485ad2036d1fa99c7c1f06ca">More...</a><br/></td></tr> <tr class="separator:acb98f8c6485ad2036d1fa99c7c1f06ca"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a76d716e62df5dcd13f2a446a3ee50330"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a76d716e62df5dcd13f2a446a3ee50330">ctx_free_func</a> )(void *ctx)</td></tr> <tr class="memdesc:a76d716e62df5dcd13f2a446a3ee50330"><td class="mdescLeft"> </td><td class="mdescRight">Free the given context. <a href="#a76d716e62df5dcd13f2a446a3ee50330">More...</a><br/></td></tr> <tr class="separator:a76d716e62df5dcd13f2a446a3ee50330"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3eadf0f53b876b5962f4f7110ee5ed1b"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structmd__info__t.html#a3eadf0f53b876b5962f4f7110ee5ed1b">process_func</a> )(void *ctx, const unsigned char *input)</td></tr> <tr class="memdesc:a3eadf0f53b876b5962f4f7110ee5ed1b"><td class="mdescLeft"> </td><td class="mdescRight">Internal use only. <a href="#a3eadf0f53b876b5962f4f7110ee5ed1b">More...</a><br/></td></tr> <tr class="separator:a3eadf0f53b876b5962f4f7110ee5ed1b"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Message digest information. </p> <p>Allows message digest functions to be called in a generic way. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00074">74</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div><h2 class="groupheader">Field Documentation</h2> <a class="anchor" id="acb98f8c6485ad2036d1fa99c7c1f06ca"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void*(* md_info_t::ctx_alloc_func)(void)</td> </tr> </table> </div><div class="memdoc"> <p>Allocate a new context. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00120">120</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="a76d716e62df5dcd13f2a446a3ee50330"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::ctx_free_func)(void *ctx)</td> </tr> </table> </div><div class="memdoc"> <p>Free the given context. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00123">123</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="a5b7d4307d341192931285ce12abd69d7"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::digest_func)(const unsigned char *input, size_t ilen, unsigned char *output)</td> </tr> </table> </div><div class="memdoc"> <p>Generic digest function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00094">94</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="a44f961fa2c2ea3772fa12cadc70d5745"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int(* md_info_t::file_func)(const char *path, unsigned char *output)</td> </tr> </table> </div><div class="memdoc"> <p>Generic file digest function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00098">98</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="a38a8a267d65c5ef81ae7b9c8429c10fb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::finish_func)(void *ctx, unsigned char *output)</td> </tr> </table> </div><div class="memdoc"> <p>Digest finalisation function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00091">91</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="aaef8d466fdbba4d5c33df7a03f7fa38c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::hmac_finish_func)(void *ctx, unsigned char *output)</td> </tr> </table> </div><div class="memdoc"> <p>HMAC finalisation function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00109">109</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="ad59c9fd57a1098c597ee8466e867a8a6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::hmac_func)(const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char *output)</td> </tr> </table> </div><div class="memdoc"> <p>Generic HMAC function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00115">115</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="a7cc43c08aa22335ba399442ed30ad88e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::hmac_reset_func)(void *ctx)</td> </tr> </table> </div><div class="memdoc"> <p>HMAC context reset function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00112">112</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="a956bae10447800b0336bd4d676d33e88"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::hmac_starts_func)(void *ctx, const unsigned char *key, size_t keylen)</td> </tr> </table> </div><div class="memdoc"> <p>HMAC Initialisation function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00101">101</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="a2d8009022839e33d166e953095cc15c2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::hmac_update_func)(void *ctx, const unsigned char *input, size_t ilen)</td> </tr> </table> </div><div class="memdoc"> <p>HMAC update function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00105">105</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="a6b5bff099db82e42620f30627f55c923"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* md_info_t::name</td> </tr> </table> </div><div class="memdoc"> <p>Name of the message digest. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00079">79</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> <p>Referenced by <a class="el" href="md_8h_source.html#l00255">md_get_name()</a>.</p> </div> </div> <a class="anchor" id="a3eadf0f53b876b5962f4f7110ee5ed1b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::process_func)(void *ctx, const unsigned char *input)</td> </tr> </table> </div><div class="memdoc"> <p>Internal use only. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00126">126</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="aedb1e12797791c9b7f5545bda6e3172d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int md_info_t::size</td> </tr> </table> </div><div class="memdoc"> <p>Output length of the digest function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00082">82</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> <p>Referenced by <a class="el" href="md_8h_source.html#l00225">md_get_size()</a>.</p> </div> </div> <a class="anchor" id="ac1863363a6ef0b82ce5e44edc03a3eeb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::starts_func)(void *ctx)</td> </tr> </table> </div><div class="memdoc"> <p>Digest initialisation function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00085">85</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <a class="anchor" id="a280fbe7109a7d7a484aab54cea6bc60f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> md_info_t::type</td> </tr> </table> </div><div class="memdoc"> <p>Digest identifier. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00076">76</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> <p>Referenced by <a class="el" href="md_8h_source.html#l00240">md_get_type()</a>.</p> </div> </div> <a class="anchor" id="a2cd91bef2cf32cf32a9f3e7cc982b944"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* md_info_t::update_func)(void *ctx, const unsigned char *input, size_t ilen)</td> </tr> </table> </div><div class="memdoc"> <p>Digest update function. </p> <p>Definition at line <a class="el" href="md_8h_source.html#l00088">88</a> of file <a class="el" href="md_8h_source.html">md.h</a>.</p> </div> </div> <hr/>The documentation for this struct was generated from the following file:<ul> <li><a class="el" href="md_8h_source.html">md.h</a></li> </ul> </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  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>