Sophie

Sophie

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

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>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">tsig.c File Reference</div>  </div>
</div>
<div class="contents">

<p><a href="tsig_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<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_8c.html#a155f3406a1cc1e31fba85dc379cd8dfa">ldns_tsig_algorithm</a> (<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *tc)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8c.html#ab71975423ad0fbdc1d78504be9d84a8f">ldns_tsig_keyname</a> (<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *tc)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8c.html#a9ce66c3ca6941cb8f5f5e692efcc2880">ldns_tsig_keydata</a> (<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *tc)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8c.html#a9d5e9783ecaea1e123980b60d3d38283">ldns_tsig_keyname_clone</a> (<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *tc)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8c.html#a32ae0d4e9a81afce92b02f221da3230e">ldns_tsig_keydata_clone</a> (<a class="el" href="structldns__tsig__credentials__struct.html">ldns_tsig_credentials</a> *tc)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8c.html#a0218b13e33f1da73b70c22830df937d5">ldns_tsig_prepare_pkt_wire</a> (uint8_t *wire, size_t wire_len, size_t *result_len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tsig_8c.html#a586dcebbdc6982d05d27277b4972849d">ldns_pkt_tsig_verify</a> (<a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *pkt, uint8_t *wire, size_t wirelen, const char *key_name, const char *key_data, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *orig_mac_rdf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">verifies the tsig rr for the given packet and key.  <a href="#a586dcebbdc6982d05d27277b4972849d"></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_8c.html#ac24cfebc33e7cb5486624ed89e93fddf">ldns_pkt_tsig_verify_next</a> (<a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *pkt, uint8_t *wire, size_t wirelen, const char *key_name, const char *key_data, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *orig_mac_rdf, 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="#ac24cfebc33e7cb5486624ed89e93fddf"></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_8c.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_8c.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/><h2>Function Documentation</h2>
<a class="anchor" id="a155f3406a1cc1e31fba85dc379cd8dfa"></a><!-- doxytag: member="tsig.c::ldns_tsig_algorithm" ref="a155f3406a1cc1e31fba85dc379cd8dfa" args="(ldns_tsig_credentials *tc)" -->
<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"><em>tc</em></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="ab71975423ad0fbdc1d78504be9d84a8f"></a><!-- doxytag: member="tsig.c::ldns_tsig_keyname" ref="ab71975423ad0fbdc1d78504be9d84a8f" args="(ldns_tsig_credentials *tc)" -->
<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"><em>tc</em></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="a9ce66c3ca6941cb8f5f5e692efcc2880"></a><!-- doxytag: member="tsig.c::ldns_tsig_keydata" ref="a9ce66c3ca6941cb8f5f5e692efcc2880" args="(ldns_tsig_credentials *tc)" -->
<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"><em>tc</em></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="a9d5e9783ecaea1e123980b60d3d38283"></a><!-- doxytag: member="tsig.c::ldns_tsig_keyname_clone" ref="a9d5e9783ecaea1e123980b60d3d38283" args="(ldns_tsig_credentials *tc)" -->
<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"><em>tc</em></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="a32ae0d4e9a81afce92b02f221da3230e"></a><!-- doxytag: member="tsig.c::ldns_tsig_keydata_clone" ref="a32ae0d4e9a81afce92b02f221da3230e" args="(ldns_tsig_credentials *tc)" -->
<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"><em>tc</em></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="a0218b13e33f1da73b70c22830df937d5"></a><!-- doxytag: member="tsig.c::ldns_tsig_prepare_pkt_wire" ref="a0218b13e33f1da73b70c22830df937d5" args="(uint8_t *wire, size_t wire_len, size_t *result_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* ldns_tsig_prepare_pkt_wire </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_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>result_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>References <a class="el" href="wire2host_8h_source.html#l00109">LDNS_ANCOUNT</a>, <a class="el" href="wire2host_8h_source.html#l00117">LDNS_ARCOUNT</a>, <a class="el" href="wire2host_8h_source.html#l00116">LDNS_ARCOUNT_OFF</a>, <a class="el" href="wire2host_8h_source.html#l00032">LDNS_HEADER_SIZE</a>, <a class="el" href="wire2host_8h_source.html#l00113">LDNS_NSCOUNT</a>, <a class="el" href="wire2host_8h_source.html#l00105">LDNS_QDCOUNT</a>, <a class="el" href="rr_8c_source.html#l00075">ldns_rr_free()</a>, <a class="el" href="packet_8h_source.html#l00276">LDNS_SECTION_ADDITIONAL</a>, <a class="el" href="packet_8h_source.html#l00274">LDNS_SECTION_ANSWER</a>, <a class="el" href="packet_8h_source.html#l00275">LDNS_SECTION_AUTHORITY</a>, <a class="el" href="packet_8h_source.html#l00273">LDNS_SECTION_QUESTION</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="wire2host_8c_source.html#l00285">ldns_wire2rr()</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="a586dcebbdc6982d05d27277b4972849d"></a><!-- doxytag: member="tsig.c::ldns_pkt_tsig_verify" ref="a586dcebbdc6982d05d27277b4972849d" args="(ldns_pkt *pkt, uint8_t *wire, size_t wirelen, const char *key_name, const char *key_data, ldns_rdf *orig_mac_rdf)" -->
<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="ac24cfebc33e7cb5486624ed89e93fddf"></a><!-- doxytag: member="tsig.c::ldns_pkt_tsig_verify_next" ref="ac24cfebc33e7cb5486624ed89e93fddf" args="(ldns_pkt *pkt, uint8_t *wire, size_t wirelen, const char *key_name, const char *key_data, ldns_rdf *orig_mac_rdf, 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.c::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.c::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>