Sophie

Sophie

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

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">dnssec_sign.c File Reference</div>  </div>
</div>
<div class="contents">

<p><a href="dnssec__sign_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"><a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#a1f83993b2aa5f98cd8c12e50327a0bc6">ldns_create_empty_rrsig</a> (<a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *rrset, <a class="el" href="structldns__struct__key.html">ldns_key</a> *current_key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty RRSIG RR (i.e.  <a href="#a1f83993b2aa5f98cd8c12e50327a0bc6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#af78cff3d19f9ab52854111aa9e399c07">ldns_sign_public_buffer</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *sign_buf, <a class="el" href="structldns__struct__key.html">ldns_key</a> *current_key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sign the buffer which contains the wiredata of an rrset, and the corresponding empty rrsig rr with the given key.  <a href="#af78cff3d19f9ab52854111aa9e399c07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#a1e464ee25453579eb3f55b8ff468f67f">ldns_sign_public</a> (<a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *rrset, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *keys)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">use this function to sign with a public/private key alg return the created signatures  <a href="#a1e464ee25453579eb3f55b8ff468f67f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#ad8a4247207b9e944964daa0cd9751733">ldns_sign_public_dsa</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *to_sign, DSA *key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sign data with DSA.  <a href="#ad8a4247207b9e944964daa0cd9751733"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#a62c41c90a2405cab414d9ff00c401586">ldns_sign_public_evp</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *to_sign, EVP_PKEY *key, const EVP_MD *digest_type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sign data with EVP (general method for different algorithms)  <a href="#a62c41c90a2405cab414d9ff00c401586"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#af0b90e23dc9bb95a1fc5d09a5d9ad564">ldns_sign_public_rsasha1</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *to_sign, RSA *key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sign a buffer with the RSA key (hash with SHA1)  <a href="#af0b90e23dc9bb95a1fc5d09a5d9ad564"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#a37b8a7a5783b0abb4c41b45e2f6b66bd">ldns_sign_public_rsamd5</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *to_sign, RSA *key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sign a buffer with the RSA key (hash with MD5)  <a href="#a37b8a7a5783b0abb4c41b45e2f6b66bd"></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="dnssec__sign_8c.html#a661031dc7bd1b27892a2dac908e42ce3">ldns_dnssec_zone_mark_and_get_glue</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *glue_list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the names in the zone that are occluded.  <a href="#a661031dc7bd1b27892a2dac908e42ce3"></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="dnssec__sign_8c.html#a5e1d049026b2768cd455952bb6725d86">ldns_dnssec_zone_mark_glue</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the names in the zone that are occluded.  <a href="#a5e1d049026b2768cd455952bb6725d86"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__rbnode__t.html">ldns_rbnode_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#a4eb9cc6743e87e343d87285ef2fe92a5">ldns_dnssec_name_node_next_nonglue</a> (<a class="el" href="structldns__rbnode__t.html">ldns_rbnode_t</a> *node)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the first dnssec_name node in the rbtree that is not occluded.  <a href="#a4eb9cc6743e87e343d87285ef2fe92a5"></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="dnssec__sign_8c.html#ae40e5c92c6c14b68f305f861b393ca4c">ldns_dnssec_zone_create_nsecs</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *new_rrs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds NSEC records to the given dnssec_zone.  <a href="#ae40e5c92c6c14b68f305f861b393ca4c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#aeb0c26592af6d6f00caf8b166ca4e143">ldns_dname_compare_v</a> (const void *a, const void *b)</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="dnssec__sign_8c.html#a10869af14890cd67324ce653a3c85a7d">ldns_dnssec_zone_create_nsec3s_mkmap</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *new_rrs, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt, <a class="el" href="structldns__rbtree__t.html">ldns_rbtree_t</a> **map)</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="dnssec__sign_8c.html#a7b2b133ca1f6eb0e1d2eeabc324ac79e">ldns_dnssec_zone_create_nsec3s</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *new_rrs, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds NSEC3 records to the zone.  <a href="#a7b2b133ca1f6eb0e1d2eeabc324ac79e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__dnssec__rrs.html">ldns_dnssec_rrs</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#a2a2c52b87423e4ecc2ab582fa9341b65">ldns_dnssec_remove_signatures</a> (<a class="el" href="structldns__struct__dnssec__rrs.html">ldns_dnssec_rrs</a> *signatures, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *key_list, int(*func)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *), void *arg)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">remove signatures if callback function tells to  <a href="#a2a2c52b87423e4ecc2ab582fa9341b65"></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="dnssec__sign_8c.html#a9b1ca8286057ed8da5791b3d400fe150">ldns_dnssec_zone_create_rrsigs</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *new_rrs, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *key_list, int(*func)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *), void *arg)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds signatures to the zone.  <a href="#a9b1ca8286057ed8da5791b3d400fe150"></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="dnssec__sign_8c.html#aee55b095c954f2bb72d9c7f6038766f8">ldns_dnssec_zone_create_rrsigs_flg</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *new_rrs, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *key_list, int(*func)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *), void *arg, int flags)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds signatures to the zone.  <a href="#aee55b095c954f2bb72d9c7f6038766f8"></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="dnssec__sign_8c.html#a7f6872f627b4d98f379481dd92080f9a">ldns_dnssec_zone_sign</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *new_rrs, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *key_list, int(*func)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *), void *arg)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">signs the given zone with the given keys  <a href="#a7f6872f627b4d98f379481dd92080f9a"></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="dnssec__sign_8c.html#abba5342158af42e5a15d5623bdf684c5">ldns_dnssec_zone_sign_flg</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *new_rrs, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *key_list, int(*func)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *), void *arg, int flags)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">signs the given zone with the given keys  <a href="#abba5342158af42e5a15d5623bdf684c5"></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="dnssec__sign_8c.html#ae73c80d9bf48e9137233e10a5d972628">ldns_dnssec_zone_sign_nsec3</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *new_rrs, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *key_list, int(*func)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *), void *arg, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">signs the given zone with the given new zone, with NSEC3  <a href="#ae73c80d9bf48e9137233e10a5d972628"></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="dnssec__sign_8c.html#aa332464b3fd3d57c68a75fdc8e9b8c69">ldns_dnssec_zone_sign_nsec3_flg_mkmap</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *new_rrs, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *key_list, int(*func)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *), void *arg, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt, int signflags, <a class="el" href="structldns__rbtree__t.html">ldns_rbtree_t</a> **map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">signs the given zone with the given new zone, with NSEC3  <a href="#aa332464b3fd3d57c68a75fdc8e9b8c69"></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="dnssec__sign_8c.html#a92fc18d880bcfcdd8d3cbdc2df4c0b0d">ldns_dnssec_zone_sign_nsec3_flg</a> (<a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *new_rrs, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *key_list, int(*func)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *), void *arg, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt, int signflags)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">signs the given zone with the given new zone, with NSEC3  <a href="#a92fc18d880bcfcdd8d3cbdc2df4c0b0d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__zone.html">ldns_zone</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#a51bcf188424a6c3e90241b59aa2c172b">ldns_zone_sign</a> (const <a class="el" href="structldns__struct__zone.html">ldns_zone</a> *zone, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *key_list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Signs the zone, and returns a newly allocated signed zone.  <a href="#a51bcf188424a6c3e90241b59aa2c172b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__zone.html">ldns_zone</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec__sign_8c.html#ae31c63b6961a1550031b357723498680">ldns_zone_sign_nsec3</a> (<a class="el" href="structldns__struct__zone.html">ldns_zone</a> *zone, <a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *key_list, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Signs the zone with NSEC3, and returns a newly allocated signed zone.  <a href="#ae31c63b6961a1550031b357723498680"></a><br/></td></tr>
</table>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a1f83993b2aa5f98cd8c12e50327a0bc6"></a><!-- doxytag: member="dnssec_sign.c::ldns_create_empty_rrsig" ref="a1f83993b2aa5f98cd8c12e50327a0bc6" args="(ldns_rr_list *rrset, ldns_key *current_key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rr.html">ldns_rr</a>* ldns_create_empty_rrsig </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>rrset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key.html">ldns_key</a> *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create an empty RRSIG RR (i.e. </p>
<p>without the actual signature data) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rrset</td><td>The RRset to create the signature for </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The key that will create the signature </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>signature rr </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00023">23</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="dnssec_8h_source.html#l00044">LDNS_DEFAULT_EXP_TIME</a>, <a class="el" href="dname_8c_source.html#l00259">ldns_dname2canonical()</a>, <a class="el" href="dname_8c_source.html#l00435">ldns_dname_is_wildcard()</a>, <a class="el" href="dname_8c_source.html#l00196">ldns_dname_label_count()</a>, <a class="el" href="keys_8c_source.html#l01064">ldns_key_algorithm()</a>, <a class="el" href="keys_8c_source.html#l01161">ldns_key_expiration()</a>, <a class="el" href="keys_8c_source.html#l01155">ldns_key_inception()</a>, <a class="el" href="keys_8c_source.html#l01167">ldns_key_keytag()</a>, <a class="el" href="keys_8c_source.html#l01173">ldns_key_pubkey_owner()</a>, <a class="el" href="rdata_8c_source.html#l00132">ldns_native2rdf_int16()</a>, <a class="el" href="rdata_8c_source.html#l00147">ldns_native2rdf_int32()</a>, <a class="el" href="rdata_8c_source.html#l00126">ldns_native2rdf_int8()</a>, <a class="el" href="rdata_8c_source.html#l00222">ldns_rdf_clone()</a>, <a class="el" href="rdata_8h_source.html#l00079">LDNS_RDF_TYPE_ALG</a>, <a class="el" href="rdata_8h_source.html#l00053">LDNS_RDF_TYPE_INT16</a>, <a class="el" href="rdata_8h_source.html#l00055">LDNS_RDF_TYPE_INT32</a>, <a class="el" href="rdata_8h_source.html#l00051">LDNS_RDF_TYPE_INT8</a>, <a class="el" href="rdata_8h_source.html#l00083">LDNS_RDF_TYPE_TIME</a>, <a class="el" href="rdata_8h_source.html#l00073">LDNS_RDF_TYPE_TYPE</a>, <a class="el" href="rr_8c_source.html#l00879">ldns_rr_get_class()</a>, <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="rr_8c_source.html#l00920">ldns_rr_list_rr()</a>, <a class="el" href="rr_8c_source.html#l00042">ldns_rr_new_frm_type()</a>, <a class="el" href="rr_8c_source.html#l00849">ldns_rr_owner()</a>, <a class="el" href="rr__functions_8c_source.html#l00129">ldns_rr_rrsig_set_algorithm()</a>, <a class="el" href="rr__functions_8c_source.html#l00165">ldns_rr_rrsig_set_expiration()</a>, <a class="el" href="rr__functions_8c_source.html#l00177">ldns_rr_rrsig_set_inception()</a>, <a class="el" href="rr__functions_8c_source.html#l00189">ldns_rr_rrsig_set_keytag()</a>, <a class="el" href="rr__functions_8c_source.html#l00141">ldns_rr_rrsig_set_labels()</a>, <a class="el" href="rr__functions_8c_source.html#l00153">ldns_rr_rrsig_set_origttl()</a>, <a class="el" href="rr__functions_8c_source.html#l00201">ldns_rr_rrsig_set_signame()</a>, <a class="el" href="rr__functions_8c_source.html#l00117">ldns_rr_rrsig_set_typecovered()</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#l00861">ldns_rr_ttl()</a>, and <a class="el" href="rr_8h_source.html#l00173">LDNS_RR_TYPE_RRSIG</a>.</p>

</div>
</div>
<a class="anchor" id="af78cff3d19f9ab52854111aa9e399c07"></a><!-- doxytag: member="dnssec_sign.c::ldns_sign_public_buffer" ref="af78cff3d19f9ab52854111aa9e399c07" args="(ldns_buffer *sign_buf, ldns_key *current_key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_sign_public_buffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>sign_buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key.html">ldns_key</a> *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sign the buffer which contains the wiredata of an rrset, and the corresponding empty rrsig rr with the given key. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sign_buf</td><td>the buffer with data to sign </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>the key to sign with </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an rdata field with the signature data </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00120">120</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="keys_8c_source.html#l01064">ldns_key_algorithm()</a>, <a class="el" href="keys_8c_source.html#l01089">ldns_key_evp_key()</a>, <a class="el" href="keys_8h_source.html#l00092">LDNS_SIGN_DSA</a>, <a class="el" href="keys_8h_source.html#l00096">LDNS_SIGN_DSA_NSEC3</a>, <a class="el" href="keys_8h_source.html#l00097">LDNS_SIGN_ECC_GOST</a>, <a class="el" href="dnssec__sign_8c_source.html#l00391">ldns_sign_public_evp()</a>, <a class="el" href="keys_8h_source.html#l00090">LDNS_SIGN_RSAMD5</a>, <a class="el" href="keys_8h_source.html#l00091">LDNS_SIGN_RSASHA1</a>, <a class="el" href="keys_8h_source.html#l00093">LDNS_SIGN_RSASHA1_NSEC3</a>, <a class="el" href="keys_8h_source.html#l00094">LDNS_SIGN_RSASHA256</a>, and <a class="el" href="keys_8h_source.html#l00095">LDNS_SIGN_RSASHA512</a>.</p>

</div>
</div>
<a class="anchor" id="a1e464ee25453579eb3f55b8ff468f67f"></a><!-- doxytag: member="dnssec_sign.c::ldns_sign_public" ref="a1e464ee25453579eb3f55b8ff468f67f" args="(ldns_rr_list *rrset, ldns_key_list *keys)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a>* ldns_sign_public </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>rrset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>keys</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>use this function to sign with a public/private key alg return the created signatures </p>
<p>Sign an rrset. </p>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00196">196</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="buffer_8c_source.html#l00137">ldns_buffer_free()</a>, <a class="el" href="buffer_8c_source.html#l00016">ldns_buffer_new()</a>, <a class="el" href="dnssec__sign_8c_source.html#l00023">ldns_create_empty_rrsig()</a>, <a class="el" href="keys_8c_source.html#l01149">ldns_key_flags()</a>, <a class="el" href="keys_8c_source.html#l01054">ldns_key_list_key()</a>, <a class="el" href="keys_8c_source.html#l01048">ldns_key_list_key_count()</a>, <a class="el" href="keys_8c_source.html#l01078">ldns_key_use()</a>, <a class="el" href="keys_8h_source.html#l00038">LDNS_KEY_ZONE_KEY</a>, <a class="el" href="packet_8h_source.html#l00024">LDNS_MAX_PACKETLEN</a>, <a class="el" href="rdata_8c_source.html#l00241">ldns_rdf_free()</a>, <a class="el" href="rr_8c_source.html#l01726">ldns_rr2canonical()</a>, <a class="el" href="host2wire_8c_source.html#l00071">ldns_rr_list2buffer_wire()</a>, <a class="el" href="rr_8c_source.html#l01359">ldns_rr_list_clone()</a>, <a class="el" href="rr_8c_source.html#l00950">ldns_rr_list_deep_free()</a>, <a class="el" href="rr_8c_source.html#l00941">ldns_rr_list_free()</a>, <a class="el" href="rr_8c_source.html#l00930">ldns_rr_list_new()</a>, <a class="el" href="rr_8c_source.html#l01062">ldns_rr_list_push_rr()</a>, <a class="el" href="rr_8c_source.html#l00920">ldns_rr_list_rr()</a>, <a class="el" href="rr_8c_source.html#l00887">ldns_rr_list_rr_count()</a>, <a class="el" href="rr_8c_source.html#l01462">ldns_rr_list_sort()</a>, <a class="el" href="rr__functions_8c_source.html#l00213">ldns_rr_rrsig_set_sig()</a>, <a class="el" href="rr_8c_source.html#l00746">ldns_rr_set_ttl()</a>, <a class="el" href="rr_8c_source.html#l00861">ldns_rr_ttl()</a>, <a class="el" href="host2wire_8c_source.html#l00196">ldns_rrsig2buffer_wire()</a>, <a class="el" href="dnssec__sign_8c_source.html#l00120">ldns_sign_public_buffer()</a>, and <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>.</p>

</div>
</div>
<a class="anchor" id="ad8a4247207b9e944964daa0cd9751733"></a><!-- doxytag: member="dnssec_sign.c::ldns_sign_public_dsa" ref="ad8a4247207b9e944964daa0cd9751733" args="(ldns_buffer *to_sign, DSA *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_sign_public_dsa </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>to_sign</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DSA *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sign data with DSA. </p>
<p>Sign a buffer with the DSA key (hash with SHA1)</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">to_sign</td><td>The ldns_buffer containing raw data that is to be signed </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The DSA key structure to sign with </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ldns_rdf for the RRSIG ldns_rr </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00303">303</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="buffer_8c_source.html#l00137">ldns_buffer_free()</a>, <a class="el" href="buffer_8c_source.html#l00016">ldns_buffer_new()</a>, <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="packet_8h_source.html#l00024">LDNS_MAX_PACKETLEN</a>, <a class="el" href="rdata_8c_source.html#l00193">ldns_rdf_new_frm_data()</a>, <a class="el" href="rdata_8h_source.html#l00067">LDNS_RDF_TYPE_B64</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="a62c41c90a2405cab414d9ff00c401586"></a><!-- doxytag: member="dnssec_sign.c::ldns_sign_public_evp" ref="a62c41c90a2405cab414d9ff00c401586" args="(ldns_buffer *to_sign, EVP_PKEY *key, const EVP_MD *digest_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_sign_public_evp </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>to_sign</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">EVP_PKEY *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const EVP_MD *&#160;</td>
          <td class="paramname"><em>digest_type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sign data with EVP (general method for different algorithms) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">to_sign</td><td>The ldns_buffer containing raw data that is to be signed </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The EVP_PKEY key structure to sign with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">digest_type</td><td>The digest algorithm to use in the creation of the signature </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ldns_rdf for the RRSIG ldns_rr </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00391">391</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="buffer_8c_source.html#l00137">ldns_buffer_free()</a>, <a class="el" href="buffer_8c_source.html#l00016">ldns_buffer_new()</a>, <a class="el" href="dnssec_8c_source.html#l01604">ldns_convert_dsa_rrsig_asn12rdf()</a>, <a class="el" href="dnssec_8h.html#a6abc850382a62cd75779a03c6714513c">ldns_convert_ecdsa_rrsig_asn12rdf()</a>, <a class="el" href="packet_8h_source.html#l00024">LDNS_MAX_PACKETLEN</a>, <a class="el" href="rdata_8c_source.html#l00193">ldns_rdf_new_frm_data()</a>, and <a class="el" href="rdata_8h_source.html#l00067">LDNS_RDF_TYPE_B64</a>.</p>

</div>
</div>
<a class="anchor" id="af0b90e23dc9bb95a1fc5d09a5d9ad564"></a><!-- doxytag: member="dnssec_sign.c::ldns_sign_public_rsasha1" ref="af0b90e23dc9bb95a1fc5d09a5d9ad564" args="(ldns_buffer *to_sign, RSA *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_sign_public_rsasha1 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>to_sign</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RSA *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sign a buffer with the RSA key (hash with SHA1) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">to_sign</td><td>buffer with the data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>the key to use </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a ldns_rdf with the signed data </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00459">459</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="buffer_8c_source.html#l00137">ldns_buffer_free()</a>, <a class="el" href="buffer_8c_source.html#l00016">ldns_buffer_new()</a>, <a class="el" href="packet_8h_source.html#l00024">LDNS_MAX_PACKETLEN</a>, <a class="el" href="rdata_8c_source.html#l00193">ldns_rdf_new_frm_data()</a>, and <a class="el" href="rdata_8h_source.html#l00067">LDNS_RDF_TYPE_B64</a>.</p>

</div>
</div>
<a class="anchor" id="a37b8a7a5783b0abb4c41b45e2f6b66bd"></a><!-- doxytag: member="dnssec_sign.c::ldns_sign_public_rsamd5" ref="a37b8a7a5783b0abb4c41b45e2f6b66bd" args="(ldns_buffer *to_sign, RSA *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_sign_public_rsamd5 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>to_sign</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RSA *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sign a buffer with the RSA key (hash with MD5) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">to_sign</td><td>buffer with the data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>the key to use </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a ldns_rdf with the signed data </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00498">498</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="buffer_8c_source.html#l00137">ldns_buffer_free()</a>, <a class="el" href="buffer_8c_source.html#l00016">ldns_buffer_new()</a>, <a class="el" href="packet_8h_source.html#l00024">LDNS_MAX_PACKETLEN</a>, <a class="el" href="rdata_8c_source.html#l00193">ldns_rdf_new_frm_data()</a>, and <a class="el" href="rdata_8h_source.html#l00067">LDNS_RDF_TYPE_B64</a>.</p>

</div>
</div>
<a class="anchor" id="a661031dc7bd1b27892a2dac908e42ce3"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_mark_and_get_glue" ref="a661031dc7bd1b27892a2dac908e42ce3" args="(ldns_dnssec_zone *zone, ldns_rr_list *glue_list)" -->
<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_dnssec_zone_mark_and_get_glue </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>glue_list</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Marks the names in the zone that are occluded. </p>
<p>Those names will be skipped when walking the tree with the <a class="el" href="dnssec__sign_8c.html#a4eb9cc6743e87e343d87285ef2fe92a5" title="Finds the first dnssec_name node in the rbtree that is not occluded.">ldns_dnssec_name_node_next_nonglue()</a> function. But watch out! Names that are partially occluded (like glue with the same name as the delegation) will not be marked and should specifically be taken into account seperately.</p>
<p>When glue_list is given (not NULL), in the process of marking the names, all glue resource records will be pushed to that list, even glue at delegation names.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone in which to mark the names </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">glue_list</td><td>the list to which to push the glue rrs </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, an error code otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00576">576</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="rbtree_8h_source.html#l00070">ldns_rbnode_t::data</a>, <a class="el" href="dnssec__zone_8h_source.html#l00082">ldns_struct_dnssec_name::is_glue</a>, <a class="el" href="dname_8c_source.html#l00275">ldns_dname_is_subdomain()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00405">ldns_dnssec_name_name()</a>, <a class="el" href="dnssec_8c_source.html#l00758">ldns_dnssec_rrsets_contains_type()</a>, <a class="el" href="rbtree_8c_source.html#l00547">ldns_rbtree_first()</a>, <a class="el" href="rbtree_8c_source.html#l00573">ldns_rbtree_next()</a>, <a class="el" href="rbtree_8h_source.html#l00076">LDNS_RBTREE_NULL</a>, <a class="el" href="rr_8h_source.html#l00159">LDNS_RR_TYPE_DNAME</a>, <a class="el" href="rr_8h_source.html#l00085">LDNS_RR_TYPE_NS</a>, <a class="el" href="rr_8h_source.html#l00093">LDNS_RR_TYPE_SOA</a>, <a class="el" href="error_8h_source.html#l00051">LDNS_STATUS_NULL</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="dnssec__zone_8h_source.html#l00096">ldns_struct_dnssec_zone::names</a>, and <a class="el" href="dnssec__zone_8h_source.html#l00064">ldns_struct_dnssec_name::rrsets</a>.</p>

</div>
</div>
<a class="anchor" id="a5e1d049026b2768cd455952bb6725d86"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_mark_glue" ref="a5e1d049026b2768cd455952bb6725d86" args="(ldns_dnssec_zone *zone)" -->
<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_dnssec_zone_mark_glue </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Marks the names in the zone that are occluded. </p>
<p>Those names will be skipped when walking the tree with the <a class="el" href="dnssec__sign_8c.html#a4eb9cc6743e87e343d87285ef2fe92a5" title="Finds the first dnssec_name node in the rbtree that is not occluded.">ldns_dnssec_name_node_next_nonglue()</a> function. But watch out! Names that are partially occluded (like glue with the same name as the delegation) will not be marked and should specifically be taken into account seperately.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone in which to mark the names </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, an error code otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00665">665</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="dnssec__sign_8c_source.html#l00576">ldns_dnssec_zone_mark_and_get_glue()</a>.</p>

</div>
</div>
<a class="anchor" id="a4eb9cc6743e87e343d87285ef2fe92a5"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_name_node_next_nonglue" ref="a4eb9cc6743e87e343d87285ef2fe92a5" args="(ldns_rbnode_t *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__rbnode__t.html">ldns_rbnode_t</a>* ldns_dnssec_name_node_next_nonglue </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__rbnode__t.html">ldns_rbnode_t</a> *&#160;</td>
          <td class="paramname"><em>node</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds the first dnssec_name node in the rbtree that is not occluded. </p>
<p>It *does* return names that are partially occluded.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>the first node to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the first node that has not been marked as glue, or NULL if not found (TODO: make that LDNS_RBTREE_NULL?) </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00671">671</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="rbtree_8h_source.html#l00070">ldns_rbnode_t::data</a>, <a class="el" href="dnssec__zone_8h_source.html#l00082">ldns_struct_dnssec_name::is_glue</a>, <a class="el" href="rbtree_8c_source.html#l00573">ldns_rbtree_next()</a>, and <a class="el" href="rbtree_8h_source.html#l00076">LDNS_RBTREE_NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ae40e5c92c6c14b68f305f861b393ca4c"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_create_nsecs" ref="ae40e5c92c6c14b68f305f861b393ca4c" args="(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs)" -->
<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_dnssec_zone_create_nsecs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>new_rrs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds NSEC records to the given dnssec_zone. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone to add the records to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">new_rrs</td><td>ldns_rr's created by this function are added to this rr list, so the caller can free them later </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, an error code otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00697">697</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="rbtree_8h_source.html#l00070">ldns_rbnode_t::data</a>, <a class="el" href="ldns_8h_source.html#l00132">LDNS_DEFAULT_TTL</a>, <a class="el" href="dnssec_8c_source.html#l00772">ldns_dnssec_create_nsec()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00467">ldns_dnssec_name_add_rr()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00531">ldns_dnssec_name_find_rrset()</a>, <a class="el" href="dnssec__sign_8c_source.html#l00671">ldns_dnssec_name_node_next_nonglue()</a>, <a class="el" href="rbtree_8c_source.html#l00547">ldns_rbtree_first()</a>, <a class="el" href="rbtree_8c_source.html#l00573">ldns_rbtree_next()</a>, <a class="el" href="rdata_8c_source.html#l00098">ldns_rdf2native_int32()</a>, <a class="el" href="rr_8c_source.html#l00075">ldns_rr_free()</a>, <a class="el" href="rr_8c_source.html#l01062">ldns_rr_list_push_rr()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="rr_8c_source.html#l00746">ldns_rr_set_ttl()</a>, <a class="el" href="rr_8h_source.html#l00174">LDNS_RR_TYPE_NSEC</a>, <a class="el" href="rr_8h_source.html#l00093">LDNS_RR_TYPE_SOA</a>, <a class="el" href="error_8h_source.html#l00037">LDNS_STATUS_ERR</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="dnssec__zone_8h_source.html#l00096">ldns_struct_dnssec_zone::names</a>, <a class="el" href="dnssec__zone_8h_source.html#l00025">ldns_struct_dnssec_rrs::rr</a>, <a class="el" href="dnssec__zone_8h_source.html#l00035">ldns_struct_dnssec_rrsets::rrs</a>, and <a class="el" href="dnssec__zone_8h_source.html#l00094">ldns_struct_dnssec_zone::soa</a>.</p>

</div>
</div>
<a class="anchor" id="aeb0c26592af6d6f00caf8b166ca4e143"></a><!-- doxytag: member="dnssec_sign.c::ldns_dname_compare_v" ref="aeb0c26592af6d6f00caf8b166ca4e143" args="(const void *a, const void *b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_dname_compare_v </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>b</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="dnssec__zone_8c_source.html#l00670">670</a> of file <a class="el" href="dnssec__zone_8c_source.html">dnssec_zone.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00338">ldns_dname_compare()</a>.</p>

</div>
</div>
<a class="anchor" id="a10869af14890cd67324ce653a3c85a7d"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_create_nsec3s_mkmap" ref="a10869af14890cd67324ce653a3c85a7d" args="(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt, ldns_rbtree_t **map)" -->
<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_dnssec_zone_create_nsec3s_mkmap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>new_rrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>algorithm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>salt_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>salt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__rbtree__t.html">ldns_rbtree_t</a> **&#160;</td>
          <td class="paramname"><em>map</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="dnssec__sign_8c_source.html#l00775">775</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="rbtree_8h_source.html#l00070">ldns_rbnode_t::data</a>, <a class="el" href="rbtree_8h_source.html#l00068">ldns_rbnode_t::key</a>, <a class="el" href="ldns_8h_source.html#l00132">LDNS_DEFAULT_TTL</a>, <a class="el" href="dnssec__zone_8c_source.html#l00670">ldns_dname_compare_v()</a>, <a class="el" href="dname_8c_source.html#l00526">ldns_dname_label()</a>, <a class="el" href="dnssec_8c_source.html#l01492">ldns_dnssec_chain_nsec3_list()</a>, <a class="el" href="dnssec_8c_source.html#l00826">ldns_dnssec_create_nsec3()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00467">ldns_dnssec_name_add_rr()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00531">ldns_dnssec_name_find_rrset()</a>, <a class="el" href="dnssec__sign_8c_source.html#l00671">ldns_dnssec_name_node_next_nonglue()</a>, <a class="el" href="util_8h_source.html#l00049">LDNS_MALLOC</a>, <a class="el" href="rbtree_8c_source.html#l00079">ldns_rbtree_create()</a>, <a class="el" href="rbtree_8c_source.html#l00547">ldns_rbtree_first()</a>, <a class="el" href="rbtree_8c_source.html#l00241">ldns_rbtree_insert()</a>, <a class="el" href="rbtree_8c_source.html#l00573">ldns_rbtree_next()</a>, <a class="el" href="rbtree_8h_source.html#l00076">LDNS_RBTREE_NULL</a>, <a class="el" href="rdata_8c_source.html#l00098">ldns_rdf2native_int32()</a>, <a class="el" href="rdata_8c_source.html#l00230">ldns_rdf_deep_free()</a>, <a class="el" href="rr_8c_source.html#l00941">ldns_rr_list_free()</a>, <a class="el" href="rr_8c_source.html#l00930">ldns_rr_list_new()</a>, <a class="el" href="rr_8c_source.html#l01062">ldns_rr_list_push_rr()</a>, <a class="el" href="dnssec_8c_source.html#l01562">ldns_rr_list_sort_nsec3()</a>, <a class="el" href="rr_8c_source.html#l00849">ldns_rr_owner()</a>, <a class="el" href="rr_8c_source.html#l00810">ldns_rr_pop_rdf()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="rr_8c_source.html#l00746">ldns_rr_set_ttl()</a>, <a class="el" href="rr_8h_source.html#l00093">LDNS_RR_TYPE_SOA</a>, <a class="el" href="error_8h_source.html#l00037">LDNS_STATUS_ERR</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="dnssec__zone_8h_source.html#l00052">ldns_struct_dnssec_name::name</a>, <a class="el" href="dnssec__zone_8h_source.html#l00096">ldns_struct_dnssec_zone::names</a>, <a class="el" href="dnssec__zone_8h_source.html#l00025">ldns_struct_dnssec_rrs::rr</a>, <a class="el" href="dnssec__zone_8h_source.html#l00035">ldns_struct_dnssec_rrsets::rrs</a>, <a class="el" href="dnssec__zone_8h_source.html#l00064">ldns_struct_dnssec_name::rrsets</a>, and <a class="el" href="dnssec__zone_8h_source.html#l00094">ldns_struct_dnssec_zone::soa</a>.</p>

</div>
</div>
<a class="anchor" id="a7b2b133ca1f6eb0e1d2eeabc324ac79e"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_create_nsec3s" ref="a7b2b133ca1f6eb0e1d2eeabc324ac79e" args="(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt)" -->
<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_dnssec_zone_create_nsec3s </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>new_rrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>algorithm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>salt_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>salt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds NSEC3 records to the zone. </p>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00876">876</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="dnssec__sign_8c_source.html#l00775">ldns_dnssec_zone_create_nsec3s_mkmap()</a>.</p>

</div>
</div>
<a class="anchor" id="a2a2c52b87423e4ecc2ab582fa9341b65"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_remove_signatures" ref="a2a2c52b87423e4ecc2ab582fa9341b65" args="(ldns_dnssec_rrs *signatures, ldns_key_list *key_list, int(*func)(ldns_rr *, void *), void *arg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__dnssec__rrs.html">ldns_dnssec_rrs</a>* ldns_dnssec_remove_signatures </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__rrs.html">ldns_dnssec_rrs</a> *&#160;</td>
          <td class="paramname"><em>signatures</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>key_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>remove signatures if callback function tells to </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">signatures</td><td>list of signatures to check, and possibly remove, depending on the value of the callback </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_list</td><td>these are marked to be used or not, on the return value of the callback </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>this function is called to specify what to do with each signature (and corresponding key) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>Optional argument for the callback function </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to the new signatures rrs (the original passed to this function may have been removed) </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00891">891</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="keys_8c_source.html#l01167">ldns_key_keytag()</a>, <a class="el" href="keys_8c_source.html#l01054">ldns_key_list_key()</a>, <a class="el" href="keys_8c_source.html#l01048">ldns_key_list_key_count()</a>, <a class="el" href="keys_8c_source.html#l01180">ldns_key_list_set_use()</a>, <a class="el" href="keys_8c_source.html#l01070">ldns_key_set_use()</a>, <a class="el" href="rdata_8c_source.html#l00084">ldns_rdf2native_int16()</a>, <a class="el" href="rr__functions_8c_source.html#l00183">ldns_rr_rrsig_keytag()</a>, <a class="el" href="dnssec_8h_source.html#l00047">LDNS_SIGNATURE_LEAVE_ADD_NEW</a>, <a class="el" href="dnssec_8h_source.html#l00048">LDNS_SIGNATURE_LEAVE_NO_ADD</a>, <a class="el" href="dnssec_8h_source.html#l00049">LDNS_SIGNATURE_REMOVE_ADD_NEW</a>, <a class="el" href="dnssec_8h_source.html#l00050">LDNS_SIGNATURE_REMOVE_NO_ADD</a>, <a class="el" href="dnssec__zone_8h_source.html#l00026">ldns_struct_dnssec_rrs::next</a>, and <a class="el" href="dnssec__zone_8h_source.html#l00025">ldns_struct_dnssec_rrs::rr</a>.</p>

</div>
</div>
<a class="anchor" id="a9b1ca8286057ed8da5791b3d400fe150"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_create_rrsigs" ref="a9b1ca8286057ed8da5791b3d400fe150" args="(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, ldns_key_list *key_list, int(*func)(ldns_rr *, void *), void *arg)" -->
<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_dnssec_zone_create_rrsigs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>new_rrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>key_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds signatures to the zone. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone to add RRSIG Resource Records to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">new_rrs</td><td>the RRSIG RRs that are created are also added to this list, so the caller can free them later </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_list</td><td>list of keys to sign with. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>Callback function to decide what keys to use and what to do with old signatures </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>Optional argument for the callback function </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, error otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l00979">979</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="dnssec__sign_8c_source.html#l01027">ldns_dnssec_zone_create_rrsigs_flg()</a>.</p>

</div>
</div>
<a class="anchor" id="aee55b095c954f2bb72d9c7f6038766f8"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_create_rrsigs_flg" ref="aee55b095c954f2bb72d9c7f6038766f8" args="(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, ldns_key_list *key_list, int(*func)(ldns_rr *, void *), void *arg, int flags)" -->
<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_dnssec_zone_create_rrsigs_flg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>new_rrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>key_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds signatures to the zone. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone to add RRSIG Resource Records to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">new_rrs</td><td>the RRSIG RRs that are created are also added to this list, so the caller can free them later </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_list</td><td>list of keys to sign with. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>Callback function to decide what keys to use and what to do with old signatures </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>Optional argument for the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>option flags for signing process. 0 makes DNSKEY RRset signed with the minimal key set, that is only SEP keys are used for signing. If there are no SEP keys available, non-SEP keys will be used. LDNS_SIGN_DNSKEY_WITH_ZSK makes DNSKEY type signed with all keys. 0 is the default. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, error otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l01027">1027</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="rbtree_8h_source.html#l00070">ldns_rbnode_t::data</a>, <a class="el" href="dnssec__zone_8h_source.html#l00082">ldns_struct_dnssec_name::is_glue</a>, <a class="el" href="dnssec__sign_8c_source.html#l00891">ldns_dnssec_remove_signatures()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00047">ldns_dnssec_rrs_add_rr()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00010">ldns_dnssec_rrs_new()</a>, <a class="el" href="dnssec_8c_source.html#l00758">ldns_dnssec_rrsets_contains_type()</a>, <a class="el" href="keys_8c_source.html#l01335">ldns_key2rr()</a>, <a class="el" href="keys_8c_source.html#l01054">ldns_key_list_key()</a>, <a class="el" href="keys_8c_source.html#l01048">ldns_key_list_key_count()</a>, <a class="el" href="keys_8c_source.html#l01180">ldns_key_list_set_use()</a>, <a class="el" href="rbtree_8c_source.html#l00547">ldns_rbtree_first()</a>, <a class="el" href="rbtree_8c_source.html#l00573">ldns_rbtree_next()</a>, <a class="el" href="rbtree_8h_source.html#l00076">LDNS_RBTREE_NULL</a>, <a class="el" href="rr_8c_source.html#l00950">ldns_rr_list_deep_free()</a>, <a class="el" href="rr_8c_source.html#l00941">ldns_rr_list_free()</a>, <a class="el" href="rr_8c_source.html#l00930">ldns_rr_list_new()</a>, <a class="el" href="rr_8c_source.html#l01062">ldns_rr_list_push_rr()</a>, <a class="el" href="rr_8c_source.html#l00920">ldns_rr_list_rr()</a>, <a class="el" href="rr_8c_source.html#l00887">ldns_rr_list_rr_count()</a>, <a class="el" href="rr_8c_source.html#l02404">ldns_rr_list_type()</a>, <a class="el" href="rr_8h_source.html#l00175">LDNS_RR_TYPE_DNSKEY</a>, <a class="el" href="rr_8h_source.html#l00167">LDNS_RR_TYPE_DS</a>, <a class="el" href="rr_8h_source.html#l00085">LDNS_RR_TYPE_NS</a>, <a class="el" href="rr_8h_source.html#l00174">LDNS_RR_TYPE_NSEC</a>, <a class="el" href="rr_8h_source.html#l00178">LDNS_RR_TYPE_NSEC3</a>, <a class="el" href="rr_8h_source.html#l00093">LDNS_RR_TYPE_SOA</a>, <a class="el" href="dnssec__sign_8h_source.html#l00015">LDNS_SIGN_DNSKEY_WITH_ZSK</a>, <a class="el" href="dnssec__sign_8c_source.html#l00196">ldns_sign_public()</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="dnssec__zone_8h_source.html#l00096">ldns_struct_dnssec_zone::names</a>, <a class="el" href="dnssec__zone_8h_source.html#l00038">ldns_struct_dnssec_rrsets::next</a>, <a class="el" href="dnssec__zone_8h_source.html#l00026">ldns_struct_dnssec_rrs::next</a>, <a class="el" href="dnssec__zone_8h_source.html#l00068">ldns_struct_dnssec_name::nsec</a>, <a class="el" href="dnssec__zone_8h_source.html#l00072">ldns_struct_dnssec_name::nsec_signatures</a>, <a class="el" href="dnssec__zone_8h_source.html#l00025">ldns_struct_dnssec_rrs::rr</a>, <a class="el" href="dnssec__zone_8h_source.html#l00035">ldns_struct_dnssec_rrsets::rrs</a>, <a class="el" href="dnssec__zone_8h_source.html#l00064">ldns_struct_dnssec_name::rrsets</a>, <a class="el" href="dnssec__zone_8h_source.html#l00037">ldns_struct_dnssec_rrsets::signatures</a>, and <a class="el" href="dnssec__zone_8h_source.html#l00036">ldns_struct_dnssec_rrsets::type</a>.</p>

</div>
</div>
<a class="anchor" id="a7f6872f627b4d98f379481dd92080f9a"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_sign" ref="a7f6872f627b4d98f379481dd92080f9a" args="(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, ldns_key_list *key_list, int(*func)(ldns_rr *, void *), void *arg)" -->
<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_dnssec_zone_sign </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>new_rrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>key_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>signs the given zone with the given keys </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone to sign </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_list</td><td>the list of keys to sign the zone with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">new_rrs</td><td>newly created resource records are added to this list, to free them later </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>callback function that decides what to do with old signatures This function takes an ldns_rr* and an optional void *arg argument, and returns one of four values: LDNS_SIGNATURE_LEAVE_ADD_NEW: leave the signature and add a new one for the corresponding key LDNS_SIGNATURE_REMOVE_ADD_NEW: remove the signature and replace is with a new one from the same key LDNS_SIGNATURE_LEAVE_NO_ADD: leave the signature and do not add a new one with the corresponding key LDNS_SIGNATURE_REMOVE_NO_ADD: remove the signature and do not replace</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>optional argument for the callback function </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, an error code otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l01166">1166</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="dnssec__sign_8c_source.html#l01176">ldns_dnssec_zone_sign_flg()</a>.</p>

</div>
</div>
<a class="anchor" id="abba5342158af42e5a15d5623bdf684c5"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_sign_flg" ref="abba5342158af42e5a15d5623bdf684c5" args="(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, ldns_key_list *key_list, int(*func)(ldns_rr *, void *), void *arg, int flags)" -->
<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_dnssec_zone_sign_flg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>new_rrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>key_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>signs the given zone with the given keys </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone to sign </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_list</td><td>the list of keys to sign the zone with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">new_rrs</td><td>newly created resource records are added to this list, to free them later </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>callback function that decides what to do with old signatures This function takes an ldns_rr* and an optional void *arg argument, and returns one of four values: LDNS_SIGNATURE_LEAVE_ADD_NEW: leave the signature and add a new one for the corresponding key LDNS_SIGNATURE_REMOVE_ADD_NEW: remove the signature and replace is with a new one from the same key LDNS_SIGNATURE_LEAVE_NO_ADD: leave the signature and do not add a new one with the corresponding key LDNS_SIGNATURE_REMOVE_NO_ADD: remove the signature and do not replace</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>optional argument for the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>option flags for signing process. 0 makes DNSKEY RRset signed with the minimal key set, that is only SEP keys are used for signing. If there are no SEP keys available, non-SEP keys will be used. LDNS_SIGN_DNSKEY_WITH_ZSK makes DNSKEY type signed with all keys. 0 is the default. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, an error code otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l01176">1176</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="rbtree_8h_source.html#l00070">ldns_rbnode_t::data</a>, <a class="el" href="dnssec__sign_8c_source.html#l00697">ldns_dnssec_zone_create_nsecs()</a>, <a class="el" href="dnssec__sign_8c_source.html#l01027">ldns_dnssec_zone_create_rrsigs_flg()</a>, <a class="el" href="dnssec__sign_8c_source.html#l00665">ldns_dnssec_zone_mark_glue()</a>, <a class="el" href="error_8h_source.html#l00037">LDNS_STATUS_ERR</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="dnssec__zone_8h_source.html#l00096">ldns_struct_dnssec_zone::names</a>, and <a class="el" href="rbtree_8h_source.html#l00085">ldns_rbtree_t::root</a>.</p>

</div>
</div>
<a class="anchor" id="ae73c80d9bf48e9137233e10a5d972628"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_sign_nsec3" ref="ae73c80d9bf48e9137233e10a5d972628" args="(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, ldns_key_list *key_list, int(*func)(ldns_rr *, void *), void *arg, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt)" -->
<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_dnssec_zone_sign_nsec3 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>new_rrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>key_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>algorithm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>salt_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>salt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>signs the given zone with the given new zone, with NSEC3 </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone to sign </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_list</td><td>the list of keys to sign the zone with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">new_rrs</td><td>newly created resource records are added to this list, to free them later </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>callback function that decides what to do with old signatures </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>optional argument for the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">algorithm</td><td>the NSEC3 hashing algorithm to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>NSEC3 flags </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">iterations</td><td>the number of NSEC3 hash iterations to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt_length</td><td>the length (in octets) of the NSEC3 salt </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt</td><td>the NSEC3 salt data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, an error code otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l01214">1214</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="dnssec__sign_8c_source.html#l01231">ldns_dnssec_zone_sign_nsec3_flg_mkmap()</a>.</p>

</div>
</div>
<a class="anchor" id="aa332464b3fd3d57c68a75fdc8e9b8c69"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_sign_nsec3_flg_mkmap" ref="aa332464b3fd3d57c68a75fdc8e9b8c69" args="(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, ldns_key_list *key_list, int(*func)(ldns_rr *, void *), void *arg, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt, int signflags, ldns_rbtree_t **map)" -->
<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_dnssec_zone_sign_nsec3_flg_mkmap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>new_rrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>key_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>algorithm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>salt_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>salt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>signflags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__rbtree__t.html">ldns_rbtree_t</a> **&#160;</td>
          <td class="paramname"><em>map</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>signs the given zone with the given new zone, with NSEC3 </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone to sign </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_list</td><td>the list of keys to sign the zone with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">new_rrs</td><td>newly created resource records are added to this list, to free them later </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>callback function that decides what to do with old signatures </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>optional argument for the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">algorithm</td><td>the NSEC3 hashing algorithm to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>NSEC3 flags </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">iterations</td><td>the number of NSEC3 hash iterations to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt_length</td><td>the length (in octets) of the NSEC3 salt </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt</td><td>the NSEC3 salt data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">signflags</td><td>option flags for signing process. 0 is the default. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">map</td><td>a referenced rbtree pointer variable. The newly created rbtree will contain mappings from hashed owner names to the unhashed name. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, an error code otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l01231">1231</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="rbtree_8h_source.html#l00070">ldns_rbnode_t::data</a>, <a class="el" href="dnssec__zone_8c_source.html#l00826">ldns_dnssec_zone_add_empty_nonterminals()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00703">ldns_dnssec_zone_add_rr()</a>, <a class="el" href="dnssec__sign_8c_source.html#l00775">ldns_dnssec_zone_create_nsec3s_mkmap()</a>, <a class="el" href="dnssec__sign_8c_source.html#l01027">ldns_dnssec_zone_create_rrsigs_flg()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00547">ldns_dnssec_zone_find_rrset()</a>, <a class="el" href="dnssec__sign_8c_source.html#l00665">ldns_dnssec_zone_mark_glue()</a>, <a class="el" href="dnssec_8c_source.html#l01060">ldns_nsec3_add_param_rdfs()</a>, <a class="el" href="rdata_8c_source.html#l00222">ldns_rdf_clone()</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="rr_8c_source.html#l01062">ldns_rr_list_push_rr()</a>, <a class="el" href="rr_8c_source.html#l00042">ldns_rr_new_frm_type()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="rr_8c_source.html#l00734">ldns_rr_set_owner()</a>, <a class="el" href="rr_8h_source.html#l00178">LDNS_RR_TYPE_NSEC3</a>, <a class="el" href="rr_8h_source.html#l00179">LDNS_RR_TYPE_NSEC3PARAM</a>, <a class="el" href="util_8c_source.html#l00108">ldns_set_bit()</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="dnssec__zone_8h_source.html#l00052">ldns_struct_dnssec_name::name</a>, <a class="el" href="dnssec__zone_8h_source.html#l00096">ldns_struct_dnssec_zone::names</a>, <a class="el" href="rbtree_8h_source.html#l00085">ldns_rbtree_t::root</a>, and <a class="el" href="dnssec__zone_8h_source.html#l00094">ldns_struct_dnssec_zone::soa</a>.</p>

</div>
</div>
<a class="anchor" id="a92fc18d880bcfcdd8d3cbdc2df4c0b0d"></a><!-- doxytag: member="dnssec_sign.c::ldns_dnssec_zone_sign_nsec3_flg" ref="a92fc18d880bcfcdd8d3cbdc2df4c0b0d" args="(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, ldns_key_list *key_list, int(*func)(ldns_rr *, void *), void *arg, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt, int signflags)" -->
<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_dnssec_zone_sign_nsec3_flg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__zone.html">ldns_dnssec_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>new_rrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>key_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *, void *)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>algorithm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>salt_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>salt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>signflags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>signs the given zone with the given new zone, with NSEC3 </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone to sign </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_list</td><td>the list of keys to sign the zone with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">new_rrs</td><td>newly created resource records are added to this list, to free them later </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>callback function that decides what to do with old signatures </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>optional argument for the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">algorithm</td><td>the NSEC3 hashing algorithm to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>NSEC3 flags </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">iterations</td><td>the number of NSEC3 hash iterations to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt_length</td><td>the length (in octets) of the NSEC3 salt </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt</td><td>the NSEC3 salt data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">signflags</td><td>option flags for signing process. 0 is the default. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, an error code otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l01315">1315</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="dnssec__sign_8c_source.html#l01231">ldns_dnssec_zone_sign_nsec3_flg_mkmap()</a>.</p>

</div>
</div>
<a class="anchor" id="a51bcf188424a6c3e90241b59aa2c172b"></a><!-- doxytag: member="dnssec_sign.c::ldns_zone_sign" ref="a51bcf188424a6c3e90241b59aa2c172b" args="(const ldns_zone *zone, ldns_key_list *key_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__zone.html">ldns_zone</a>* ldns_zone_sign </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__zone.html">ldns_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>key_list</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Signs the zone, and returns a newly allocated signed zone. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone to sign </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_list</td><td>list of keys to sign with </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>signed zone </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l01333">1333</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="dnssec_8c_source.html#l01595">ldns_dnssec_default_replace_signatures()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00703">ldns_dnssec_zone_add_rr()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00639">ldns_dnssec_zone_free()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00614">ldns_dnssec_zone_new()</a>, <a class="el" href="dnssec__sign_8c_source.html#l01166">ldns_dnssec_zone_sign()</a>, <a class="el" href="rr_8c_source.html#l01328">ldns_rr_clone()</a>, <a class="el" href="rr_8c_source.html#l00950">ldns_rr_list_deep_free()</a>, <a class="el" href="rr_8c_source.html#l00930">ldns_rr_list_new()</a>, <a class="el" href="rr_8c_source.html#l01062">ldns_rr_list_push_rr()</a>, <a class="el" href="rr_8c_source.html#l00920">ldns_rr_list_rr()</a>, <a class="el" href="rr_8c_source.html#l00887">ldns_rr_list_rr_count()</a>, <a class="el" href="zone_8c_source.html#l00263">ldns_zone_new()</a>, <a class="el" href="zone_8c_source.html#l00054">ldns_zone_push_rr()</a>, <a class="el" href="zone_8c_source.html#l00035">ldns_zone_rrs()</a>, <a class="el" href="zone_8c_source.html#l00029">ldns_zone_set_soa()</a>, and <a class="el" href="zone_8c_source.html#l00017">ldns_zone_soa()</a>.</p>

</div>
</div>
<a class="anchor" id="ae31c63b6961a1550031b357723498680"></a><!-- doxytag: member="dnssec_sign.c::ldns_zone_sign_nsec3" ref="ae31c63b6961a1550031b357723498680" args="(ldns_zone *zone, ldns_key_list *key_list, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__zone.html">ldns_zone</a>* ldns_zone_sign_nsec3 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__zone.html">ldns_zone</a> *&#160;</td>
          <td class="paramname"><em>zone</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__key__list.html">ldns_key_list</a> *&#160;</td>
          <td class="paramname"><em>key_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>algorithm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>salt_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>salt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Signs the zone with NSEC3, and returns a newly allocated signed zone. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">zone</td><td>the zone to sign </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_list</td><td>list of keys to sign with </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">algorithm</td><td>the NSEC3 hashing algorithm to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>NSEC3 flags </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">iterations</td><td>the number of NSEC3 hash iterations to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt_length</td><td>the length (in octets) of the NSEC3 salt </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt</td><td>the NSEC3 salt data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>signed zone </dd></dl>

<p>Definition at line <a class="el" href="dnssec__sign_8c_source.html#l01374">1374</a> of file <a class="el" href="dnssec__sign_8c_source.html">dnssec_sign.c</a>.</p>

<p>References <a class="el" href="dnssec_8c_source.html#l01595">ldns_dnssec_default_replace_signatures()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00703">ldns_dnssec_zone_add_rr()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00639">ldns_dnssec_zone_free()</a>, <a class="el" href="dnssec__zone_8c_source.html#l00614">ldns_dnssec_zone_new()</a>, <a class="el" href="dnssec__sign_8c_source.html#l01214">ldns_dnssec_zone_sign_nsec3()</a>, <a class="el" href="rr_8c_source.html#l01328">ldns_rr_clone()</a>, <a class="el" href="rr_8c_source.html#l00950">ldns_rr_list_deep_free()</a>, <a class="el" href="rr_8c_source.html#l00930">ldns_rr_list_new()</a>, <a class="el" href="rr_8c_source.html#l01062">ldns_rr_list_push_rr()</a>, <a class="el" href="rr_8c_source.html#l00920">ldns_rr_list_rr()</a>, <a class="el" href="rr_8c_source.html#l00887">ldns_rr_list_rr_count()</a>, <a class="el" href="zone_8c_source.html#l00263">ldns_zone_new()</a>, <a class="el" href="zone_8c_source.html#l00054">ldns_zone_push_rr()</a>, <a class="el" href="zone_8c_source.html#l00035">ldns_zone_rrs()</a>, <a class="el" href="zone_8c_source.html#l00029">ldns_zone_set_soa()</a>, and <a class="el" href="zone_8c_source.html#l00017">ldns_zone_soa()</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>