Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > e3a718fcad37ff363f65d6a6e994e272 > files > 274

ldns-devel-1.6.12-1.fc15.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type"
content="text/html;charset=iso-8859-1">
<title>ldns documentation</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div class="logo">
<img src="LogoInGradientBar2-y100.png"/>
</div>
<!-- Generated by Doxygen 1.7.4 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</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>
      <li><a href="dirs.html"><span>Directories</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_7a7a565456b510ac01baf8655647d8a2.html">ldns</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">tsig.h File Reference</div>  </div>
</div>
<div class="contents">

<p>Defines functions for TSIG usage.  
<a href="#details">More...</a></p>

<p><a href="tsig_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials_struct</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains credentials for TSIG.  <a href="structldns__tsig__credentials__struct.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8h.html#afca72c4c8f5e03b44ad84bb52acbb132">ldns_tsig_credentials</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains credentials for TSIG.  <a href="#afca72c4c8f5e03b44ad84bb52acbb132"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8h.html#aca550e17c298427668a50b0389647b59">ldns_tsig_algorithm</a> (<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8h.html#a7ed494b8c90b39c19cb560a30864c31a">ldns_tsig_keyname</a> (<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8h.html#a86916f3e93c1fe5412877c617354d362">ldns_tsig_keydata</a> (<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8h.html#afedfdf9070ed1be6d805a27c82be05c7">ldns_tsig_keyname_clone</a> (<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8h.html#a1732cec545178ccc6e42e0183bdeb7c2">ldns_tsig_keydata_clone</a> (<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8h.html#afbca7a3db9333bf434e741f983ec90b6">ldns_pkt_tsig_verify</a> (<a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *pkt, uint8_t *wire, size_t wire_size, const char *key_name, const char *key_data, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *mac)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">verifies the tsig rr for the given packet and key.  <a href="#afbca7a3db9333bf434e741f983ec90b6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8h.html#a401dcc6594991f4990d61e48134d8017">ldns_pkt_tsig_verify_next</a> (<a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *pkt, uint8_t *wire, size_t wire_size, const char *key_name, const char *key_data, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *mac, int tsig_timers_only)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">verifies the tsig rr for the given packet and key.  <a href="#a401dcc6594991f4990d61e48134d8017"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8h.html#a77501f37821c68328382bccdca956805">ldns_pkt_tsig_sign</a> (<a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *pkt, const char *key_name, const char *key_data, uint16_t fudge, const char *algorithm_name, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *query_mac)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">creates a tsig rr for the given packet and key.  <a href="#a77501f37821c68328382bccdca956805"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8h.html#a6ad3d9062abc5920fb30ea12d4d4967e">ldns_pkt_tsig_sign_next</a> (<a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *pkt, const char *key_name, const char *key_data, uint16_t fudge, const char *algorithm_name, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *query_mac, int tsig_timers_only)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">creates a tsig rr for the given packet and key.  <a href="#a6ad3d9062abc5920fb30ea12d4d4967e"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Defines functions for TSIG usage. </p>

<p>Definition in file <a class="el" href="tsig_8h_source.html">tsig.h</a>.</p>
</div><hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="afca72c4c8f5e03b44ad84bb52acbb132"></a><!-- doxytag: member="tsig.h::ldns_tsig_credentials" ref="afca72c4c8f5e03b44ad84bb52acbb132" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials_struct</a>  <a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Contains credentials for TSIG. </p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="aca550e17c298427668a50b0389647b59"></a><!-- doxytag: member="tsig.h::ldns_tsig_algorithm" ref="aca550e17c298427668a50b0389647b59" args="(ldns_tsig_credentials *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* ldns_tsig_algorithm </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="tsig_8c_source.html#l00022">22</a> of file <a class="el" href="tsig_8c_source.html">tsig.c</a>.</p>

<p>References <a class="el" href="tsig_8h_source.html#l00028">ldns_tsig_credentials_struct::algorithm</a>.</p>

</div>
</div>
<a class="anchor" id="a7ed494b8c90b39c19cb560a30864c31a"></a><!-- doxytag: member="tsig.h::ldns_tsig_keyname" ref="a7ed494b8c90b39c19cb560a30864c31a" args="(ldns_tsig_credentials *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* ldns_tsig_keyname </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="tsig_8c_source.html#l00028">28</a> of file <a class="el" href="tsig_8c_source.html">tsig.c</a>.</p>

<p>References <a class="el" href="tsig_8h_source.html#l00029">ldns_tsig_credentials_struct::keyname</a>.</p>

</div>
</div>
<a class="anchor" id="a86916f3e93c1fe5412877c617354d362"></a><!-- doxytag: member="tsig.h::ldns_tsig_keydata" ref="a86916f3e93c1fe5412877c617354d362" args="(ldns_tsig_credentials *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* ldns_tsig_keydata </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="tsig_8c_source.html#l00034">34</a> of file <a class="el" href="tsig_8c_source.html">tsig.c</a>.</p>

<p>References <a class="el" href="tsig_8h_source.html#l00030">ldns_tsig_credentials_struct::keydata</a>.</p>

</div>
</div>
<a class="anchor" id="afedfdf9070ed1be6d805a27c82be05c7"></a><!-- doxytag: member="tsig.h::ldns_tsig_keyname_clone" ref="afedfdf9070ed1be6d805a27c82be05c7" args="(ldns_tsig_credentials *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* ldns_tsig_keyname_clone </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="tsig_8c_source.html#l00040">40</a> of file <a class="el" href="tsig_8c_source.html">tsig.c</a>.</p>

<p>References <a class="el" href="tsig_8h_source.html#l00029">ldns_tsig_credentials_struct::keyname</a>.</p>

</div>
</div>
<a class="anchor" id="a1732cec545178ccc6e42e0183bdeb7c2"></a><!-- doxytag: member="tsig.h::ldns_tsig_keydata_clone" ref="a1732cec545178ccc6e42e0183bdeb7c2" args="(ldns_tsig_credentials *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* ldns_tsig_keydata_clone </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="tsig_8c_source.html#l00046">46</a> of file <a class="el" href="tsig_8c_source.html">tsig.c</a>.</p>

<p>References <a class="el" href="tsig_8h_source.html#l00030">ldns_tsig_credentials_struct::keydata</a>.</p>

</div>
</div>
<a class="anchor" id="afbca7a3db9333bf434e741f983ec90b6"></a><!-- doxytag: member="tsig.h::ldns_pkt_tsig_verify" ref="afbca7a3db9333bf434e741f983ec90b6" args="(ldns_pkt *pkt, uint8_t *wire, size_t wire_size, const char *key_name, const char *key_data, ldns_rdf *mac)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ldns_pkt_tsig_verify </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *&#160;</td>
          <td class="paramname"><em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>wire</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>wire_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>mac</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>verifies the tsig rr for the given packet and key. </p>
<p>The wire must be given too because tsig does not sign normalized packets. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pkt</td><td>the packet to verify </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">wire</td><td>needed to verify the mac </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">wire_size</td><td>size of wire </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_name</td><td>the name of the shared key </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_data</td><td>the key in base 64 format </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">mac</td><td>original mac </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if tsig is correct, false if not, or if tsig is not set </dd></dl>

<p>Definition at line <a class="el" href="tsig_8c_source.html#l00278">278</a> of file <a class="el" href="tsig_8c_source.html">tsig.c</a>.</p>

<p>References <a class="el" href="tsig_8c_source.html#l00285">ldns_pkt_tsig_verify_next()</a>.</p>

</div>
</div>
<a class="anchor" id="a401dcc6594991f4990d61e48134d8017"></a><!-- doxytag: member="tsig.h::ldns_pkt_tsig_verify_next" ref="a401dcc6594991f4990d61e48134d8017" args="(ldns_pkt *pkt, uint8_t *wire, size_t wire_size, const char *key_name, const char *key_data, ldns_rdf *mac, int tsig_timers_only)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ldns_pkt_tsig_verify_next </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *&#160;</td>
          <td class="paramname"><em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>wire</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>wire_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>mac</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>tsig_timers_only</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>verifies the tsig rr for the given packet and key. </p>
<p>The wire must be given too because tsig does not sign normalized packets. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pkt</td><td>the packet to verify </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">wire</td><td>needed to verify the mac </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">wire_size</td><td>size of wire </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_name</td><td>the name of the shared key </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_data</td><td>the key in base 64 format </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">mac</td><td>original mac </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tsig_timers_only</td><td>must be zero for the first packet and positive for subsequent packets. If zero, all digest components are used to verify the _mac. If non-zero, only the TSIG timers are used to verify the mac. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if tsig is correct, false if not, or if tsig is not set </dd></dl>

<p>Definition at line <a class="el" href="tsig_8c_source.html#l00285">285</a> of file <a class="el" href="tsig_8c_source.html">tsig.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="packet_8c_source.html#l00039">ldns_pkt_id()</a>, <a class="el" href="packet_8c_source.html#l00450">ldns_pkt_set_id()</a>, <a class="el" href="packet_8c_source.html#l00642">ldns_pkt_set_tsig()</a>, <a class="el" href="packet_8c_source.html#l00444">ldns_pkt_tsig()</a>, <a class="el" href="rdata_8c_source.html#l00084">ldns_rdf2native_int16()</a>, <a class="el" href="rdata_8c_source.html#l00569">ldns_rdf_compare()</a>, <a class="el" href="rdata_8c_source.html#l00230">ldns_rdf_deep_free()</a>, <a class="el" href="rdata_8c_source.html#l00249">ldns_rdf_new_frm_str()</a>, <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>, <a class="el" href="rr_8c_source.html#l00867">ldns_rr_rd_count()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, and <a class="el" href="tsig_8c_source.html#l00055">ldns_tsig_prepare_pkt_wire()</a>.</p>

</div>
</div>
<a class="anchor" id="a77501f37821c68328382bccdca956805"></a><!-- doxytag: member="tsig.h::ldns_pkt_tsig_sign" ref="a77501f37821c68328382bccdca956805" args="(ldns_pkt *pkt, const char *key_name, const char *key_data, uint16_t fudge, const char *algorithm_name, ldns_rdf *query_mac)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> ldns_pkt_tsig_sign </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *&#160;</td>
          <td class="paramname"><em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>fudge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>algorithm_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>query_mac</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>creates a tsig rr for the given packet and key. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pkt</td><td>the packet to sign </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_name</td><td>the name of the shared key </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_data</td><td>the key in base 64 format </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fudge</td><td>seconds of error permitted in time signed </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">algorithm_name</td><td>the name of the algorithm used </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_mac</td><td>is added to the digest if not NULL (so NULL is for signing queries, not NULL is for signing answers) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>status (OK if success) </dd></dl>

<p>Definition at line <a class="el" href="tsig_8c_source.html#l00354">354</a> of file <a class="el" href="tsig_8c_source.html">tsig.c</a>.</p>

<p>References <a class="el" href="tsig_8c_source.html#l00361">ldns_pkt_tsig_sign_next()</a>.</p>

</div>
</div>
<a class="anchor" id="a6ad3d9062abc5920fb30ea12d4d4967e"></a><!-- doxytag: member="tsig.h::ldns_pkt_tsig_sign_next" ref="a6ad3d9062abc5920fb30ea12d4d4967e" args="(ldns_pkt *pkt, const char *key_name, const char *key_data, uint16_t fudge, const char *algorithm_name, ldns_rdf *query_mac, int tsig_timers_only)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> ldns_pkt_tsig_sign_next </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *&#160;</td>
          <td class="paramname"><em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>fudge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>algorithm_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>query_mac</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>tsig_timers_only</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>creates a tsig rr for the given packet and key. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pkt</td><td>the packet to sign </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_name</td><td>the name of the shared key </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_data</td><td>the key in base 64 format </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fudge</td><td>seconds of error permitted in time signed </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">algorithm_name</td><td>the name of the algorithm used </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_mac</td><td>is added to the digest if not NULL (so NULL is for signing queries, not NULL is for signing answers) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tsig_timers_only</td><td>must be zero for the first packet and positive for subsequent packets. If zero, all digest components are used to create the query_mac. If non-zero, only the TSIG timers are used to create the query_mac. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>status (OK if success) </dd></dl>

<p>Definition at line <a class="el" href="tsig_8c_source.html#l00361">361</a> of file <a class="el" href="tsig_8c_source.html">tsig.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="rdata_8c_source.html#l00132">ldns_native2rdf_int16()</a>, <a class="el" href="rdata_8c_source.html#l00162">ldns_native2rdf_int16_data()</a>, <a class="el" href="host2wire_8c_source.html#l00404">ldns_pkt2wire()</a>, <a class="el" href="packet_8c_source.html#l00039">ldns_pkt_id()</a>, <a class="el" href="packet_8c_source.html#l00642">ldns_pkt_set_tsig()</a>, <a class="el" href="rdata_8c_source.html#l00241">ldns_rdf_free()</a>, <a class="el" href="rdata_8c_source.html#l00179">ldns_rdf_new()</a>, <a class="el" href="rdata_8c_source.html#l00249">ldns_rdf_new_frm_str()</a>, <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>, <a class="el" href="rdata_8h_source.html#l00053">LDNS_RDF_TYPE_INT16</a>, <a class="el" href="rdata_8h_source.html#l00087">LDNS_RDF_TYPE_TSIGTIME</a>, <a class="el" href="rr_8h_source.html#l00058">LDNS_RR_CLASS_ANY</a>, <a class="el" href="rr_8c_source.html#l00024">ldns_rr_new()</a>, <a class="el" href="rr_8c_source.html#l00787">ldns_rr_push_rdf()</a>, <a class="el" href="rr_8c_source.html#l00764">ldns_rr_set_class()</a>, <a class="el" href="rr_8c_source.html#l00734">ldns_rr_set_owner()</a>, <a class="el" href="rr_8c_source.html#l00746">ldns_rr_set_ttl()</a>, <a class="el" href="rr_8c_source.html#l00758">ldns_rr_set_type()</a>, <a class="el" href="rr_8h_source.html#l00192">LDNS_RR_TYPE_TSIG</a>, <a class="el" href="error_8h_source.html#l00037">LDNS_STATUS_ERR</a>, <a class="el" href="error_8h_source.html#l00035">LDNS_STATUS_INTERNAL_ERR</a>, <a class="el" href="error_8h_source.html#l00034">LDNS_STATUS_MEM_ERR</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Wed Jan 11 2012 for ldns by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>