<!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: pk_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">pk_info_t Struct Reference</div> </div> </div><!--header--> <div class="contents"> <p>Public key information and operations. <a href="structpk__info__t.html#details">More...</a></p> <p><code>#include <<a class="el" href="pk_8h_source.html">pk.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:a768d03e2e8c1762596f307d9f0c1dc50"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pk_8h.html#afca3aa33cb1f34742a7ee3fd8ccec9ca">pk_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#a768d03e2e8c1762596f307d9f0c1dc50">type</a></td></tr> <tr class="memdesc:a768d03e2e8c1762596f307d9f0c1dc50"><td class="mdescLeft"> </td><td class="mdescRight">Public key type. <a href="#a768d03e2e8c1762596f307d9f0c1dc50">More...</a><br/></td></tr> <tr class="separator:a768d03e2e8c1762596f307d9f0c1dc50"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af3e645f1fb64adff93048a8a231c923d"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#af3e645f1fb64adff93048a8a231c923d">name</a></td></tr> <tr class="memdesc:af3e645f1fb64adff93048a8a231c923d"><td class="mdescLeft"> </td><td class="mdescRight">Type name. <a href="#af3e645f1fb64adff93048a8a231c923d">More...</a><br/></td></tr> <tr class="separator:af3e645f1fb64adff93048a8a231c923d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6dcce8287a6da934f57d8f753c5b9358"><td class="memItemLeft" align="right" valign="top">size_t(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#a6dcce8287a6da934f57d8f753c5b9358">get_size</a> )(const void *)</td></tr> <tr class="memdesc:a6dcce8287a6da934f57d8f753c5b9358"><td class="mdescLeft"> </td><td class="mdescRight">Get key size in bits. <a href="#a6dcce8287a6da934f57d8f753c5b9358">More...</a><br/></td></tr> <tr class="separator:a6dcce8287a6da934f57d8f753c5b9358"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6f6b2c645d74dc73ee3f4f477a93d6d1"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#a6f6b2c645d74dc73ee3f4f477a93d6d1">can_do</a> )(<a class="el" href="pk_8h.html#afca3aa33cb1f34742a7ee3fd8ccec9ca">pk_type_t</a> <a class="el" href="structpk__info__t.html#a768d03e2e8c1762596f307d9f0c1dc50">type</a>)</td></tr> <tr class="memdesc:a6f6b2c645d74dc73ee3f4f477a93d6d1"><td class="mdescLeft"> </td><td class="mdescRight">Tell if the context implements this type (e.g. <a href="#a6f6b2c645d74dc73ee3f4f477a93d6d1">More...</a><br/></td></tr> <tr class="separator:a6f6b2c645d74dc73ee3f4f477a93d6d1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4c6fff900ffa04050378ac7a48e5a5bf"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#a4c6fff900ffa04050378ac7a48e5a5bf">verify_func</a> )(void *ctx, <a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> md_alg, const unsigned char *hash, size_t hash_len, const unsigned char *sig, size_t sig_len)</td></tr> <tr class="memdesc:a4c6fff900ffa04050378ac7a48e5a5bf"><td class="mdescLeft"> </td><td class="mdescRight">Verify signature. <a href="#a4c6fff900ffa04050378ac7a48e5a5bf">More...</a><br/></td></tr> <tr class="separator:a4c6fff900ffa04050378ac7a48e5a5bf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aec33fbe6849435a395037dcab1b5222a"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#aec33fbe6849435a395037dcab1b5222a">sign_func</a> )(void *ctx, <a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> md_alg, const unsigned char *hash, size_t hash_len, unsigned char *sig, size_t *sig_len, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr> <tr class="memdesc:aec33fbe6849435a395037dcab1b5222a"><td class="mdescLeft"> </td><td class="mdescRight">Make signature. <a href="#aec33fbe6849435a395037dcab1b5222a">More...</a><br/></td></tr> <tr class="separator:aec33fbe6849435a395037dcab1b5222a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae081483e8045e922774606baf2ef1b40"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#ae081483e8045e922774606baf2ef1b40">decrypt_func</a> )(void *ctx, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen, size_t osize, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr> <tr class="memdesc:ae081483e8045e922774606baf2ef1b40"><td class="mdescLeft"> </td><td class="mdescRight">Decrypt message. <a href="#ae081483e8045e922774606baf2ef1b40">More...</a><br/></td></tr> <tr class="separator:ae081483e8045e922774606baf2ef1b40"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a45eea226acaa04797b795d66364d5e51"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#a45eea226acaa04797b795d66364d5e51">encrypt_func</a> )(void *ctx, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen, size_t osize, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr> <tr class="memdesc:a45eea226acaa04797b795d66364d5e51"><td class="mdescLeft"> </td><td class="mdescRight">Encrypt message. <a href="#a45eea226acaa04797b795d66364d5e51">More...</a><br/></td></tr> <tr class="separator:a45eea226acaa04797b795d66364d5e51"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae6651935411283c4869b1bab672b1ce2"><td class="memItemLeft" align="right" valign="top">void *(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#ae6651935411283c4869b1bab672b1ce2">ctx_alloc_func</a> )(void)</td></tr> <tr class="memdesc:ae6651935411283c4869b1bab672b1ce2"><td class="mdescLeft"> </td><td class="mdescRight">Allocate a new context. <a href="#ae6651935411283c4869b1bab672b1ce2">More...</a><br/></td></tr> <tr class="separator:ae6651935411283c4869b1bab672b1ce2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af085c214def330a112e2a55f899ce33d"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#af085c214def330a112e2a55f899ce33d">ctx_free_func</a> )(void *ctx)</td></tr> <tr class="memdesc:af085c214def330a112e2a55f899ce33d"><td class="mdescLeft"> </td><td class="mdescRight">Free the given context. <a href="#af085c214def330a112e2a55f899ce33d">More...</a><br/></td></tr> <tr class="separator:af085c214def330a112e2a55f899ce33d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adcca09fc260afe096b26a4348f6658e6"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structpk__info__t.html#adcca09fc260afe096b26a4348f6658e6">debug_func</a> )(const void *ctx, <a class="el" href="structpk__debug__item.html">pk_debug_item</a> *items)</td></tr> <tr class="memdesc:adcca09fc260afe096b26a4348f6658e6"><td class="mdescLeft"> </td><td class="mdescRight">Interface with the debug module. <a href="#adcca09fc260afe096b26a4348f6658e6">More...</a><br/></td></tr> <tr class="separator:adcca09fc260afe096b26a4348f6658e6"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Public key information and operations. </p> <p>Definition at line <a class="el" href="pk_8h_source.html#l00142">142</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div><h2 class="groupheader">Field Documentation</h2> <a class="anchor" id="a6f6b2c645d74dc73ee3f4f477a93d6d1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int(* pk_info_t::can_do)(<a class="el" href="pk_8h.html#afca3aa33cb1f34742a7ee3fd8ccec9ca">pk_type_t</a> <a class="el" href="structpk__info__t.html#a768d03e2e8c1762596f307d9f0c1dc50">type</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Tell if the context implements this type (e.g. </p> <p>ECKEY can do ECDSA) </p> <p>Definition at line <a class="el" href="pk_8h_source.html#l00154">154</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <a class="anchor" id="ae6651935411283c4869b1bab672b1ce2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void*(* pk_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="pk_8h_source.html#l00181">181</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <a class="anchor" id="af085c214def330a112e2a55f899ce33d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* pk_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="pk_8h_source.html#l00184">184</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <a class="anchor" id="adcca09fc260afe096b26a4348f6658e6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void(* pk_info_t::debug_func)(const void *ctx, <a class="el" href="structpk__debug__item.html">pk_debug_item</a> *items)</td> </tr> </table> </div><div class="memdoc"> <p>Interface with the debug module. </p> <p>Definition at line <a class="el" href="pk_8h_source.html#l00187">187</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <a class="anchor" id="ae081483e8045e922774606baf2ef1b40"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int(* pk_info_t::decrypt_func)(void *ctx, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen, size_t osize, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td> </tr> </table> </div><div class="memdoc"> <p>Decrypt message. </p> <p>Definition at line <a class="el" href="pk_8h_source.html#l00169">169</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <a class="anchor" id="a45eea226acaa04797b795d66364d5e51"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int(* pk_info_t::encrypt_func)(void *ctx, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen, size_t osize, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td> </tr> </table> </div><div class="memdoc"> <p>Encrypt message. </p> <p>Definition at line <a class="el" href="pk_8h_source.html#l00175">175</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <a class="anchor" id="a6dcce8287a6da934f57d8f753c5b9358"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t(* pk_info_t::get_size)(const void *)</td> </tr> </table> </div><div class="memdoc"> <p>Get key size in bits. </p> <p>Definition at line <a class="el" href="pk_8h_source.html#l00151">151</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <a class="anchor" id="af3e645f1fb64adff93048a8a231c923d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* pk_info_t::name</td> </tr> </table> </div><div class="memdoc"> <p>Type name. </p> <p>Definition at line <a class="el" href="pk_8h_source.html#l00148">148</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <a class="anchor" id="aec33fbe6849435a395037dcab1b5222a"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int(* pk_info_t::sign_func)(void *ctx, <a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> md_alg, const unsigned char *hash, size_t hash_len, unsigned char *sig, size_t *sig_len, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td> </tr> </table> </div><div class="memdoc"> <p>Make signature. </p> <p>Definition at line <a class="el" href="pk_8h_source.html#l00162">162</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <a class="anchor" id="a768d03e2e8c1762596f307d9f0c1dc50"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="pk_8h.html#afca3aa33cb1f34742a7ee3fd8ccec9ca">pk_type_t</a> pk_info_t::type</td> </tr> </table> </div><div class="memdoc"> <p>Public key type. </p> <p>Definition at line <a class="el" href="pk_8h_source.html#l00145">145</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <a class="anchor" id="a4c6fff900ffa04050378ac7a48e5a5bf"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int(* pk_info_t::verify_func)(void *ctx, <a class="el" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> md_alg, const unsigned char *hash, size_t hash_len, const unsigned char *sig, size_t sig_len)</td> </tr> </table> </div><div class="memdoc"> <p>Verify signature. </p> <p>Definition at line <a class="el" href="pk_8h_source.html#l00157">157</a> of file <a class="el" href="pk_8h_source.html">pk.h</a>.</p> </div> </div> <hr/>The documentation for this struct was generated from the following file:<ul> <li><a class="el" href="pk_8h_source.html">pk.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>