<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>DTN Reference Implementation: gcm.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.6 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="contents"> <h1>gcm.h File Reference</h1> <p> <code>#include "<a class="el" href="gcm__aes_8h-source.html">gcm_aes.h</a>"</code><br> <code>#include "<a class="el" href="gf128mul_8h-source.html">gf128mul.h</a>"</code><br> <p> <a href="gcm_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structgcm__ctx.html">gcm_ctx</a></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#d63e1f447f6a9816ca34e2a77c1adeea">BFR_UNIT</a> 64</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#a529a3ade43a2979d477e450242004b0">RETURN_WARN</a> 1</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#b747ac432edef91062f2946bb521e49f">RETURN_OK</a> 0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#9eec9e2a2ffc5f3c7a1bfbe1ba4a4c2b">RETURN_ERROR</a> -1</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#0c56cb56e66965c61e5e4ee91cfdb923">GCM_BLOCK_SIZE</a> AES_BLOCK_SIZE</td></tr> <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#5136c10f0c38f7eac4d4ef9f4eb720eb">dec_unit_type</a> (BFR_UNIT, buf_unit)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#91b8d84863eed46dc80cebb87489a094">dec_bufr_type</a> (BFR_UNIT, AES_BLOCK_SIZE, buf_type)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#721f02566e2e0717ba131e470028ac3d">gcm_init_and_key</a> (const unsigned char key[], unsigned long key_len, <a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#0e37bb8dc094c7ab3af2c1e4bafcc360">gcm_end</a> (<a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#1d46a1f6a2fc83e504eb48a55814b289">gcm_encrypt_message</a> (const unsigned char iv[], unsigned long iv_len, const unsigned char hdr[], unsigned long hdr_len, unsigned char msg[], unsigned long msg_len, unsigned char tag[], unsigned long tag_len, <a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#83f849d6a9182d6a6675b4d423f4d8ee">gcm_decrypt_message</a> (const unsigned char iv[], unsigned long iv_len, const unsigned char hdr[], unsigned long hdr_len, unsigned char msg[], unsigned long msg_len, const unsigned char tag[], unsigned long tag_len, <a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#48cd234f03c3e3a1c89430a979fa3fca">gcm_init_message</a> (const unsigned char iv[], unsigned long iv_len, <a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#95f68fdf95d3cf02bea89a68614a046f">gcm_auth_header</a> (const unsigned char hdr[], unsigned long hdr_len, <a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#14c0cae74fab923c0290ccbc0baa4a44">gcm_encrypt</a> (unsigned char data[], unsigned long data_len, <a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#eda1ee70a25e5b06af8341018a95b11d">gcm_decrypt</a> (unsigned char data[], unsigned long data_len, <a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#84e08678ef30d0737224927a37c85e3b">gcm_compute_tag</a> (unsigned char tag[], unsigned long tag_len, <a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#e0d5938e51cb31e58db485abbd400e39">gcm_auth_data</a> (const unsigned char data[], unsigned long data_len, <a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="gcm_8h.html#734d3157fb8a3da6f8af7a92855021b0">gcm_crypt_data</a> (unsigned char data[], unsigned long data_len, <a class="el" href="structgcm__ctx.html">gcm_ctx</a> ctx[1])</td></tr> </table> <hr><h2>Define Documentation</h2> <a class="anchor" name="d63e1f447f6a9816ca34e2a77c1adeea"></a><!-- doxytag: member="gcm.h::BFR_UNIT" ref="d63e1f447f6a9816ca34e2a77c1adeea" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define BFR_UNIT 64 </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="gcm_8h-source.html#l00046">46</a> of file <a class="el" href="gcm_8h-source.html">gcm.h</a>.</p> </div> </div><p> <a class="anchor" name="0c56cb56e66965c61e5e4ee91cfdb923"></a><!-- doxytag: member="gcm.h::GCM_BLOCK_SIZE" ref="0c56cb56e66965c61e5e4ee91cfdb923" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCM_BLOCK_SIZE AES_BLOCK_SIZE </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="gcm_8h-source.html#l00081">81</a> of file <a class="el" href="gcm_8h-source.html">gcm.h</a>.</p> </div> </div><p> <a class="anchor" name="9eec9e2a2ffc5f3c7a1bfbe1ba4a4c2b"></a><!-- doxytag: member="gcm.h::RETURN_ERROR" ref="9eec9e2a2ffc5f3c7a1bfbe1ba4a4c2b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RETURN_ERROR -1 </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="gcm_8h-source.html#l00074">74</a> of file <a class="el" href="gcm_8h-source.html">gcm.h</a>.</p> </div> </div><p> <a class="anchor" name="b747ac432edef91062f2946bb521e49f"></a><!-- doxytag: member="gcm.h::RETURN_OK" ref="b747ac432edef91062f2946bb521e49f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RETURN_OK 0 </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="gcm_8h-source.html#l00073">73</a> of file <a class="el" href="gcm_8h-source.html">gcm.h</a>.</p> </div> </div><p> <a class="anchor" name="a529a3ade43a2979d477e450242004b0"></a><!-- doxytag: member="gcm.h::RETURN_WARN" ref="a529a3ade43a2979d477e450242004b0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RETURN_WARN 1 </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="gcm_8h-source.html#l00072">72</a> of file <a class="el" href="gcm_8h-source.html">gcm.h</a>.</p> </div> </div><p> <hr><h2>Typedef Documentation</h2> <a class="anchor" name="a0762d336f64b72721690d6706f5802b"></a><!-- doxytag: member="gcm.h::ret_type" ref="a0762d336f64b72721690d6706f5802b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef int <a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="gcm_8h-source.html#l00077">77</a> of file <a class="el" href="gcm_8h-source.html">gcm.h</a>.</p> </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="91b8d84863eed46dc80cebb87489a094"></a><!-- doxytag: member="gcm.h::dec_bufr_type" ref="91b8d84863eed46dc80cebb87489a094" args="(BFR_UNIT, AES_BLOCK_SIZE, buf_type)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dec_bufr_type </td> <td>(</td> <td class="paramtype">BFR_UNIT </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">AES_BLOCK_SIZE </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">buf_type </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="5136c10f0c38f7eac4d4ef9f4eb720eb"></a><!-- doxytag: member="gcm.h::dec_unit_type" ref="5136c10f0c38f7eac4d4ef9f4eb720eb" args="(BFR_UNIT, buf_unit)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dec_unit_type </td> <td>(</td> <td class="paramtype">BFR_UNIT </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">buf_unit </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="e0d5938e51cb31e58db485abbd400e39"></a><!-- doxytag: member="gcm.h::gcm_auth_data" ref="e0d5938e51cb31e58db485abbd400e39" args="(const unsigned char data[], unsigned long data_len, gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_auth_data </td> <td>(</td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>data</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>data_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="95f68fdf95d3cf02bea89a68614a046f"></a><!-- doxytag: member="gcm.h::gcm_auth_header" ref="95f68fdf95d3cf02bea89a68614a046f" args="(const unsigned char hdr[], unsigned long hdr_len, gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_auth_header </td> <td>(</td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>hdr</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>hdr_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="84e08678ef30d0737224927a37c85e3b"></a><!-- doxytag: member="gcm.h::gcm_compute_tag" ref="84e08678ef30d0737224927a37c85e3b" args="(unsigned char tag[], unsigned long tag_len, gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_compute_tag </td> <td>(</td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>tag</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>tag_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="734d3157fb8a3da6f8af7a92855021b0"></a><!-- doxytag: member="gcm.h::gcm_crypt_data" ref="734d3157fb8a3da6f8af7a92855021b0" args="(unsigned char data[], unsigned long data_len, gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_crypt_data </td> <td>(</td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>data</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>data_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="eda1ee70a25e5b06af8341018a95b11d"></a><!-- doxytag: member="gcm.h::gcm_decrypt" ref="eda1ee70a25e5b06af8341018a95b11d" args="(unsigned char data[], unsigned long data_len, gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_decrypt </td> <td>(</td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>data</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>data_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="83f849d6a9182d6a6675b4d423f4d8ee"></a><!-- doxytag: member="gcm.h::gcm_decrypt_message" ref="83f849d6a9182d6a6675b4d423f4d8ee" args="(const unsigned char iv[], unsigned long iv_len, const unsigned char hdr[], unsigned long hdr_len, unsigned char msg[], unsigned long msg_len, const unsigned char tag[], unsigned long tag_len, gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_decrypt_message </td> <td>(</td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>iv</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>iv_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>hdr</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>hdr_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>msg</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>msg_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>tag</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>tag_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="14c0cae74fab923c0290ccbc0baa4a44"></a><!-- doxytag: member="gcm.h::gcm_encrypt" ref="14c0cae74fab923c0290ccbc0baa4a44" args="(unsigned char data[], unsigned long data_len, gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_encrypt </td> <td>(</td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>data</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>data_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="1d46a1f6a2fc83e504eb48a55814b289"></a><!-- doxytag: member="gcm.h::gcm_encrypt_message" ref="1d46a1f6a2fc83e504eb48a55814b289" args="(const unsigned char iv[], unsigned long iv_len, const unsigned char hdr[], unsigned long hdr_len, unsigned char msg[], unsigned long msg_len, unsigned char tag[], unsigned long tag_len, gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_encrypt_message </td> <td>(</td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>iv</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>iv_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>hdr</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>hdr_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>msg</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>msg_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>tag</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>tag_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="0e37bb8dc094c7ab3af2c1e4bafcc360"></a><!-- doxytag: member="gcm.h::gcm_end" ref="0e37bb8dc094c7ab3af2c1e4bafcc360" args="(gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_end </td> <td>(</td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1] </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="721f02566e2e0717ba131e470028ac3d"></a><!-- doxytag: member="gcm.h::gcm_init_and_key" ref="721f02566e2e0717ba131e470028ac3d" args="(const unsigned char key[], unsigned long key_len, gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_init_and_key </td> <td>(</td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>key</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>key_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="48cd234f03c3e3a1c89430a979fa3fca"></a><!-- doxytag: member="gcm.h::gcm_init_message" ref="48cd234f03c3e3a1c89430a979fa3fca" args="(const unsigned char iv[], unsigned long iv_len, gcm_ctx ctx[1])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gcm_8h.html#a0762d336f64b72721690d6706f5802b">ret_type</a> gcm_init_message </td> <td>(</td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>iv</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>iv_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structgcm__ctx.html">gcm_ctx</a> </td> <td class="paramname"> <em>ctx</em>[1]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Mon Jul 21 14:09:49 2008 for DTN Reference Implementation by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address> </body> </html>