Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type"
content="text/html;charset=iso-8859-1">
<title>ldns documentation</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div class="logo">
<img src="LogoInGradientBar2-y100.png"/>
</div>
<!-- Generated by Doxygen 1.7.4 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="dir_7a7a565456b510ac01baf8655647d8a2.html">ldns</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">dnssec.h File Reference</div>  </div>
</div>
<div class="contents">

<p>This module contains base functions for DNSSEC operations (RFC4033 t/m RFC4035).  
<a href="#details">More...</a></p>

<p><a href="dnssec_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>&#160;&#160;&#160;2048</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a0204ad12a7207e2386d3bec8761f7e67">LDNS_DNSSEC_KEYPROTO</a>&#160;&#160;&#160;3</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a565cc51b68d4b5723830434ee1c0dfe0">LDNS_DEFAULT_EXP_TIME</a>&#160;&#160;&#160;2419200</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a7d75bfb1850f236aceceeb73dd91cc3d">LDNS_SIGNATURE_LEAVE_ADD_NEW</a>&#160;&#160;&#160;0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">return values for the old-signature callback  <a href="#a7d75bfb1850f236aceceeb73dd91cc3d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#af27db29d1fe3dc7fb7a0f98a766d1a12">LDNS_SIGNATURE_LEAVE_NO_ADD</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#ad3c393ca14a32d2a34fb22585caeb73e">LDNS_SIGNATURE_REMOVE_ADD_NEW</a>&#160;&#160;&#160;2</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a9d87cb4cfbb8ee22ffbcc3ddb9d5dce1">LDNS_SIGNATURE_REMOVE_NO_ADD</a>&#160;&#160;&#160;3</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a375f02cd5dcc78bcfbd402be5aec085e">LDNS_NSEC3_MAX_ITERATIONS</a>&#160;&#160;&#160;65535</td></tr>
<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_8h.html#a52a865495fbba2c612ac4eebce4a2d24">ldns_dnssec_get_rrsig_for_name_and_type</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *name, const <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> type, const <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *rrs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the first RRSIG rr that corresponds to the rrset with the given name and type.  <a href="#a52a865495fbba2c612ac4eebce4a2d24"></a><br/></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_8h.html#a49756b6a7126033cd426d757643e7398">ldns_dnssec_get_dnskey_for_rrsig</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *rrsig, const <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *rrs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the DNSKEY that corresponds to the given RRSIG rr from the list, if any.  <a href="#a49756b6a7126033cd426d757643e7398"></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_8h.html#a259d9689fcc1560d4085f44ab8151654">ldns_nsec_get_bitmap</a> (<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the rdata field that contains the bitmap of the covered types of the given NSEC record.  <a href="#a259d9689fcc1560d4085f44ab8151654"></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_8h.html#a55aa949be2e598b4cd798ed59da4363a">ldns_dnssec_nsec3_closest_encloser</a> (<a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *qname, <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> qtype, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *nsec3s)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the dname of the closest (provable) encloser.  <a href="#a55aa949be2e598b4cd798ed59da4363a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a33f64fecc8522504169629bf8dd79d5a">ldns_dnssec_pkt_has_rrsigs</a> (const <a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *pkt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the packet contains rrsigs.  <a href="#a33f64fecc8522504169629bf8dd79d5a"></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_8h.html#a5644e8426fded2e1c57ef6f643399219">ldns_dnssec_pkt_get_rrsigs_for_name_and_type</a> (const <a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *pkt, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *name, <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a ldns_rr_list containing the signatures covering the given name and type.  <a href="#a5644e8426fded2e1c57ef6f643399219"></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_8h.html#ad03207fb98d700dba5b9433c692145d3">ldns_dnssec_pkt_get_rrsigs_for_type</a> (const <a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *pkt, <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a ldns_rr_list containing the signatures covering the given type.  <a href="#ad03207fb98d700dba5b9433c692145d3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a7cf8c4687caff6153a61052c5523e7ab">ldns_calc_keytag</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">calculates a keytag of a key for use in DNSSEC.  <a href="#a7cf8c4687caff6153a61052c5523e7ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#ace2d1cad66229876b3cec66db12f30f4">ldns_calc_keytag_raw</a> (uint8_t *key, size_t keysize)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates keytag of DNSSEC key, operates on wireformat rdata.  <a href="#ace2d1cad66229876b3cec66db12f30f4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DSA *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#adbaf1b9197285c071a959f87ed8fb17d">ldns_key_buf2dsa</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">converts a buffer holding key material to a DSA key in openssl.  <a href="#adbaf1b9197285c071a959f87ed8fb17d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DSA *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a5f90e74b05b4cdf65d11c17e5c887b30">ldns_key_buf2dsa_raw</a> (unsigned char *key, size_t len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like ldns_key_buf2dsa, but uses raw buffer.  <a href="#a5f90e74b05b4cdf65d11c17e5c887b30"></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_8h.html#a9483392f157e2ab100459c685eb7ea95">ldns_digest_evp</a> (unsigned char *data, unsigned int len, unsigned char *dest, const EVP_MD *md)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to calculate hash using generic EVP_MD pointer.  <a href="#a9483392f157e2ab100459c685eb7ea95"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EVP_PKEY *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a1cfcc69e70c9c57016d56ddcb008f777">ldns_gost2pkey_raw</a> (unsigned char *key, size_t keylen)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a holding buffer with key material to EVP PKEY in openssl.  <a href="#a1cfcc69e70c9c57016d56ddcb008f777"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EVP_PKEY *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a1b3613e74929d32667ebbea2c3470ea8">ldns_ecdsa2pkey_raw</a> (unsigned char *key, size_t keylen, uint8_t algo)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a holding buffer with key material to EVP PKEY in openssl.  <a href="#a1b3613e74929d32667ebbea2c3470ea8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RSA *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#aeafba65095aa59f1ba109591701949c5">ldns_key_buf2rsa</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">converts a buffer holding key material to a RSA key in openssl.  <a href="#aeafba65095aa59f1ba109591701949c5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RSA *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a37eb5a2d4b58a903884222cdabe56a76">ldns_key_buf2rsa_raw</a> (unsigned char *key, size_t len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like ldns_key_buf2rsa, but uses raw buffer.  <a href="#a37eb5a2d4b58a903884222cdabe56a76"></a><br/></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_8h.html#acf9bb930301fbc1a2724321a7f2c8d90">ldns_key_rr2ds</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *key, <a class="el" href="keys_8h.html#ab53d559230792e3951c8974631808fc5">ldns_hash</a> h)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a new DS rr that represents the given key rr.  <a href="#acf9bb930301fbc1a2724321a7f2c8d90"></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_8h.html#aa303ec9b0723ed4b954f1a2ff99a226a">ldns_dnssec_create_nsec_bitmap</a> (<a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> rr_type_list[], size_t size, <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> nsec_type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the type bitmap for an NSEC(3) record.  <a href="#aa303ec9b0723ed4b954f1a2ff99a226a"></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_8h.html#aba8ade9eed84d1a95eab95622587a0b4">ldns_dnssec_rrsets_contains_type</a> (<a class="el" href="structldns__struct__dnssec__rrsets.html">ldns_dnssec_rrsets</a> *rrsets, <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns whether a rrset of the given type is found in the rrsets.  <a href="#aba8ade9eed84d1a95eab95622587a0b4"></a><br/></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_8h.html#ae6fa0e94ef20702415ce458afc041f32">ldns_dnssec_create_nsec</a> (<a class="el" href="structldns__struct__dnssec__name.html">ldns_dnssec_name</a> *from, <a class="el" href="structldns__struct__dnssec__name.html">ldns_dnssec_name</a> *to, <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> nsec_type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates NSEC.  <a href="#ae6fa0e94ef20702415ce458afc041f32"></a><br/></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_8h.html#a91a04e82a9a91edf77c5eb736921bbbb">ldns_dnssec_create_nsec3</a> (<a class="el" href="structldns__struct__dnssec__name.html">ldns_dnssec_name</a> *from, <a class="el" href="structldns__struct__dnssec__name.html">ldns_dnssec_name</a> *to, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *zone_name, 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">Creates NSEC3.  <a href="#a91a04e82a9a91edf77c5eb736921bbbb"></a><br/></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_8h.html#a9085186405931df151e3eac5d33292fb">ldns_create_nsec</a> (<a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *cur_owner, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *next_owner, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *rrs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a NSEC record.  <a href="#a9085186405931df151e3eac5d33292fb"></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_8h.html#aa516dac9f07ce8b5734b9dfd19376cae">ldns_nsec3_hash_name</a> (<a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *name, uint8_t algorithm, uint16_t iterations, uint8_t salt_length, uint8_t *salt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the hashed name using the given parameters.  <a href="#aa516dac9f07ce8b5734b9dfd19376cae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a32e7e1f34ec0a19c6d20997bd4191b61">ldns_nsec3_add_param_rdfs</a> (<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *rr, 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">Sets all the NSEC3 options.  <a href="#a32e7e1f34ec0a19c6d20997bd4191b61"></a><br/></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_8h.html#a4f2743c769d775eb5b6448286621da0c">ldns_create_nsec3</a> (<a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *cur_owner, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *cur_zone, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *rrs, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt, bool emptynonterminal)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#ac3466657ba6e849ddcf44547729b7654">ldns_nsec3_algorithm</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec3_rr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the hash algorithm used in the given NSEC3 RR.  <a href="#ac3466657ba6e849ddcf44547729b7654"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a8095ff0b971736da0fac9f09ed4a70e2">ldns_nsec3_flags</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec3_rr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns flags field.  <a href="#a8095ff0b971736da0fac9f09ed4a70e2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#aa0afddc06606bb7b2cf5a01498a75f74">ldns_nsec3_optout</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec3_rr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the opt-out flag has been set in the given NSEC3 RR.  <a href="#aa0afddc06606bb7b2cf5a01498a75f74"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a30ee21fd35125587a36cfddab232af60">ldns_nsec3_iterations</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec3_rr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of hash iterations used in the given NSEC3 RR.  <a href="#a30ee21fd35125587a36cfddab232af60"></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_8h.html#ad51179f10589890c3d774cc20f253bc2">ldns_nsec3_salt</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec3_rr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the salt used in the given NSEC3 RR.  <a href="#ad51179f10589890c3d774cc20f253bc2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a7fa2f6a7ad9c4c69a3705e2fa3065556">ldns_nsec3_salt_length</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec3_rr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the salt used in the given NSEC3 RR.  <a href="#a7fa2f6a7ad9c4c69a3705e2fa3065556"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a96ef18b4efc39b04aba2df85a272b958">ldns_nsec3_salt_data</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec3_rr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the salt bytes used in the given NSEC3 RR.  <a href="#a96ef18b4efc39b04aba2df85a272b958"></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_8h.html#ad1eecc66294a1195664dd1ba195a57b0">ldns_nsec3_next_owner</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec3_rr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the first label of the next ownername in the NSEC3 chain (ie.  <a href="#ad1eecc66294a1195664dd1ba195a57b0"></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_8h.html#ac60cd95b31e771323d711d404c917167">ldns_nsec3_bitmap</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec3_rr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bitmap specifying the covered types of the given NSEC3 RR.  <a href="#ac60cd95b31e771323d711d404c917167"></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_8h.html#acac169a05f307efe9226b872904f644e">ldns_nsec3_hash_name_frm_nsec3</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the hashed name using the parameters of the given NSEC3 RR.  <a href="#acac169a05f307efe9226b872904f644e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#ab60bf88f5cc38b9d8a8e052ce5c33fde">ldns_nsec_bitmap_covers_type</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *nsec_bitmap, <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks coverage of NSEC RR type bitmap.  <a href="#ab60bf88f5cc38b9d8a8e052ce5c33fde"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#ae580eb88c6a29558c572e097890099dc">ldns_nsec_covers_name</a> (const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *nsec, const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks coverage of NSEC(3) RR name span Remember that nsec and name must both be in canonical form (ie use <a class="el" href="rr_8h.html#a6e26228733c74b4fb7aacc985a350519">ldns_rr2canonical</a> and <a class="el" href="dname_8h.html#aab93b3e88152119737f42d624fd34795">ldns_dname2canonical</a> prior to calling this function)  <a href="#ae580eb88c6a29558c572e097890099dc"></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_8h.html#a0ee15f04de7f380ca19326fc7851c444">ldns_pkt_verify</a> (<a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *p, <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> t, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *o, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *k, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *s, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *good_keys)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">verify a packet  <a href="#a0ee15f04de7f380ca19326fc7851c444"></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_8h.html#af145cf7773677c0fffe56f5df5106c76">ldns_pkt_verify_time</a> (<a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *p, <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> t, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *o, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *k, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *s, time_t check_time, <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *good_keys)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">verify a packet  <a href="#af145cf7773677c0fffe56f5df5106c76"></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_8h.html#ad00a2e53f01e8ae1c08402fc80dff757">ldns_dnssec_chain_nsec3_list</a> (<a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *nsec3_rrs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">chains nsec3 list  <a href="#ad00a2e53f01e8ae1c08402fc80dff757"></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_8h.html#ae641000a4b7f8c7229e1d3ece8067f39">qsort_rr_compare_nsec3</a> (const void *a, const void *b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">compare for nsec3 sort  <a href="#ae641000a4b7f8c7229e1d3ece8067f39"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dnssec_8h.html#a411a6000cc312ebf353ab0e302b97aec">ldns_rr_list_sort_nsec3</a> (<a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *unsorted)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">sort nsec3 list  <a href="#a411a6000cc312ebf353ab0e302b97aec"></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_8h.html#ada58948f5d105d7817ea47608e974d78">ldns_dnssec_default_add_to_signatures</a> (<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *sig, void *n)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default callback function to always leave present signatures, and add new ones.  <a href="#ada58948f5d105d7817ea47608e974d78"></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_8h.html#a8a5934ffbbfb621c63ba8bb841229808">ldns_dnssec_default_leave_signatures</a> (<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *sig, void *n)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default callback function to always leave present signatures, and add no new ones for the keys of these signatures.  <a href="#a8a5934ffbbfb621c63ba8bb841229808"></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_8h.html#ac7efa063ce39cf4791dd30a4b41ab14c">ldns_dnssec_default_delete_signatures</a> (<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *sig, void *n)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default callback function to always remove present signatures, but add no new ones.  <a href="#ac7efa063ce39cf4791dd30a4b41ab14c"></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_8h.html#aa20001e7098d4be9f24baf56a8761410">ldns_dnssec_default_replace_signatures</a> (<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *sig, void *n)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default callback function to always leave present signatures, and add new ones.  <a href="#aa20001e7098d4be9f24baf56a8761410"></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_8h.html#a4634cf53a0db48001bbbbdd17cc19776">ldns_convert_dsa_rrsig_asn12rdf</a> (const <a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *sig, const long sig_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the DSA signature from ASN1 representation (RFC2459, as used by OpenSSL) to raw signature data as used in DNS (rfc2536)  <a href="#a4634cf53a0db48001bbbbdd17cc19776"></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_8h.html#ab108d2e53a4c50960af11f999a8ba546">ldns_convert_dsa_rrsig_rdf2asn1</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *target_buffer, const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *sig_rdf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the RRSIG signature RDF (in rfc2536 format) to a buffer with the signature in rfc2459 format.  <a href="#ab108d2e53a4c50960af11f999a8ba546"></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_8h.html#a6abc850382a62cd75779a03c6714513c">ldns_convert_ecdsa_rrsig_asn12rdf</a> (const <a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *sig, const long sig_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the ECDSA signature from ASN1 representation (as used by OpenSSL) to raw signature data as used in DNS This routine is only present if ldns is compiled with ecdsa support.  <a href="#a6abc850382a62cd75779a03c6714513c"></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_8h.html#a43edc2abba90771b264de3665b34e45a">ldns_convert_ecdsa_rrsig_rdf2asn1</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *target_buffer, const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *sig_rdf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the RRSIG signature RDF (from DNS) to a buffer with the signature in ASN1 format as openssl uses it.  <a href="#a43edc2abba90771b264de3665b34e45a"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This module contains base functions for DNSSEC operations (RFC4033 t/m RFC4035). </p>
<p>Since those functions heavily rely op cryptographic operations, this module is dependent on openssl. </p>

<p>Definition in file <a class="el" href="dnssec_8h_source.html">dnssec.h</a>.</p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="a798ad176a54d51307d1c210bfe5877f6"></a><!-- doxytag: member="dnssec.h::LDNS_MAX_KEYLEN" ref="a798ad176a54d51307d1c210bfe5877f6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_MAX_KEYLEN&#160;&#160;&#160;2048</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dnssec_8h_source.html#l00041">41</a> of file <a class="el" href="dnssec_8h_source.html">dnssec.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0204ad12a7207e2386d3bec8761f7e67"></a><!-- doxytag: member="dnssec.h::LDNS_DNSSEC_KEYPROTO" ref="a0204ad12a7207e2386d3bec8761f7e67" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_DNSSEC_KEYPROTO&#160;&#160;&#160;3</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dnssec_8h_source.html#l00042">42</a> of file <a class="el" href="dnssec_8h_source.html">dnssec.h</a>.</p>

</div>
</div>
<a class="anchor" id="a565cc51b68d4b5723830434ee1c0dfe0"></a><!-- doxytag: member="dnssec.h::LDNS_DEFAULT_EXP_TIME" ref="a565cc51b68d4b5723830434ee1c0dfe0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_DEFAULT_EXP_TIME&#160;&#160;&#160;2419200</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dnssec_8h_source.html#l00044">44</a> of file <a class="el" href="dnssec_8h_source.html">dnssec.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7d75bfb1850f236aceceeb73dd91cc3d"></a><!-- doxytag: member="dnssec.h::LDNS_SIGNATURE_LEAVE_ADD_NEW" ref="a7d75bfb1850f236aceceeb73dd91cc3d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_SIGNATURE_LEAVE_ADD_NEW&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>return values for the old-signature callback </p>

<p>Definition at line <a class="el" href="dnssec_8h_source.html#l00047">47</a> of file <a class="el" href="dnssec_8h_source.html">dnssec.h</a>.</p>

</div>
</div>
<a class="anchor" id="af27db29d1fe3dc7fb7a0f98a766d1a12"></a><!-- doxytag: member="dnssec.h::LDNS_SIGNATURE_LEAVE_NO_ADD" ref="af27db29d1fe3dc7fb7a0f98a766d1a12" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_SIGNATURE_LEAVE_NO_ADD&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dnssec_8h_source.html#l00048">48</a> of file <a class="el" href="dnssec_8h_source.html">dnssec.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad3c393ca14a32d2a34fb22585caeb73e"></a><!-- doxytag: member="dnssec.h::LDNS_SIGNATURE_REMOVE_ADD_NEW" ref="ad3c393ca14a32d2a34fb22585caeb73e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_SIGNATURE_REMOVE_ADD_NEW&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dnssec_8h_source.html#l00049">49</a> of file <a class="el" href="dnssec_8h_source.html">dnssec.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9d87cb4cfbb8ee22ffbcc3ddb9d5dce1"></a><!-- doxytag: member="dnssec.h::LDNS_SIGNATURE_REMOVE_NO_ADD" ref="a9d87cb4cfbb8ee22ffbcc3ddb9d5dce1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_SIGNATURE_REMOVE_NO_ADD&#160;&#160;&#160;3</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dnssec_8h_source.html#l00050">50</a> of file <a class="el" href="dnssec_8h_source.html">dnssec.h</a>.</p>

</div>
</div>
<a class="anchor" id="a375f02cd5dcc78bcfbd402be5aec085e"></a><!-- doxytag: member="dnssec.h::LDNS_NSEC3_MAX_ITERATIONS" ref="a375f02cd5dcc78bcfbd402be5aec085e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_NSEC3_MAX_ITERATIONS&#160;&#160;&#160;65535</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dnssec_8h_source.html#l00087">87</a> of file <a class="el" href="dnssec_8h_source.html">dnssec.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a52a865495fbba2c612ac4eebce4a2d24"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_get_rrsig_for_name_and_type" ref="a52a865495fbba2c612ac4eebce4a2d24" args="(const ldns_rdf *name, const ldns_rr_type type, const ldns_rr_list *rrs)" -->
<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_dnssec_get_rrsig_for_name_and_type </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>rrs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the first RRSIG rr that corresponds to the rrset with the given name and type. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The dname of the RRset covered by the RRSIG to find </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>The type of the RRset covered by the RRSIG to find </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rrs</td><td>List of rrs to search in </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the first RRsig ldns_rr found, or NULL if it is not present </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00029">29</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00338">ldns_dname_compare()</a>, <a class="el" href="rr_8c_source.html#l02387">ldns_rdf2rr_type()</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#l00887">ldns_rr_list_rr_count()</a>, <a class="el" href="rr_8c_source.html#l00849">ldns_rr_owner()</a>, <a class="el" href="rr__functions_8c_source.html#l00111">ldns_rr_rrsig_typecovered()</a>, and <a class="el" href="rr_8h_source.html#l00173">LDNS_RR_TYPE_RRSIG</a>.</p>

</div>
</div>
<a class="anchor" id="a49756b6a7126033cd426d757643e7398"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_get_dnskey_for_rrsig" ref="a49756b6a7126033cd426d757643e7398" args="(const ldns_rr *rrsig, const ldns_rr_list *rrs)" -->
<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_dnssec_get_dnskey_for_rrsig </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>rrsig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr__list.html">ldns_rr_list</a> *&#160;</td>
          <td class="paramname"><em>rrs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the DNSKEY that corresponds to the given RRSIG rr from the list, if any. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rrsig</td><td>The rrsig to find the DNSKEY for </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rrs</td><td>The rr list to find the key in </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The DNSKEY that corresponds to the given RRSIG, or NULL if it was not found. </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00057">57</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8c_source.html#l00272">ldns_calc_keytag()</a>, <a class="el" href="dname_8c_source.html#l00338">ldns_dname_compare()</a>, <a class="el" href="rdata_8c_source.html#l00084">ldns_rdf2native_int16()</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#l00887">ldns_rr_list_rr_count()</a>, <a class="el" href="rr_8c_source.html#l00849">ldns_rr_owner()</a>, <a class="el" href="rr__functions_8c_source.html#l00183">ldns_rr_rrsig_keytag()</a>, <a class="el" href="rr__functions_8c_source.html#l00195">ldns_rr_rrsig_signame()</a>, and <a class="el" href="rr_8h_source.html#l00175">LDNS_RR_TYPE_DNSKEY</a>.</p>

</div>
</div>
<a class="anchor" id="a259d9689fcc1560d4085f44ab8151654"></a><!-- doxytag: member="dnssec.h::ldns_nsec_get_bitmap" ref="a259d9689fcc1560d4085f44ab8151654" args="(ldns_rr *nsec)" -->
<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_nsec_get_bitmap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the rdata field that contains the bitmap of the covered types of the given NSEC record. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nsec</td><td>The nsec to get the covered type bitmap of </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>An ldns_rdf containing the bitmap, or NULL on error </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00084">84</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="rr_8h_source.html#l00174">LDNS_RR_TYPE_NSEC</a>, and <a class="el" href="rr_8h_source.html#l00178">LDNS_RR_TYPE_NSEC3</a>.</p>

</div>
</div>
<a class="anchor" id="a55aa949be2e598b4cd798ed59da4363a"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_nsec3_closest_encloser" ref="a55aa949be2e598b4cd798ed59da4363a" args="(ldns_rdf *qname, ldns_rr_type qtype, ldns_rr_list *nsec3s)" -->
<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_dnssec_nsec3_closest_encloser </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>qtype</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>nsec3s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the dname of the closest (provable) encloser. </p>

</div>
</div>
<a class="anchor" id="a33f64fecc8522504169629bf8dd79d5a"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_pkt_has_rrsigs" ref="a33f64fecc8522504169629bf8dd79d5a" args="(const ldns_pkt *pkt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ldns_dnssec_pkt_has_rrsigs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *&#160;</td>
          <td class="paramname"><em>pkt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether the packet contains rrsigs. </p>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00199">199</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="packet_8c_source.html#l00105">ldns_pkt_ancount()</a>, <a class="el" href="packet_8c_source.html#l00129">ldns_pkt_answer()</a>, <a class="el" href="packet_8c_source.html#l00135">ldns_pkt_authority()</a>, <a class="el" href="packet_8c_source.html#l00111">ldns_pkt_nscount()</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>, and <a class="el" href="rr_8h_source.html#l00173">LDNS_RR_TYPE_RRSIG</a>.</p>

</div>
</div>
<a class="anchor" id="a5644e8426fded2e1c57ef6f643399219"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_pkt_get_rrsigs_for_name_and_type" ref="a5644e8426fded2e1c57ef6f643399219" args="(const ldns_pkt *pkt, ldns_rdf *name, ldns_rr_type type)" -->
<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_dnssec_pkt_get_rrsigs_for_name_and_type </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *&#160;</td>
          <td class="paramname"><em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a ldns_rr_list containing the signatures covering the given name and type. </p>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00218">218</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="packet_8c_source.html#l00320">ldns_pkt_rr_list_by_name_and_type()</a>, <a class="el" href="rdata_8c_source.html#l00241">ldns_rdf_free()</a>, <a class="el" href="rdata_8c_source.html#l00179">ldns_rdf_new()</a>, <a class="el" href="rdata_8h_source.html#l00034">LDNS_RDF_SIZE_WORD</a>, <a class="el" href="rdata_8h_source.html#l00073">LDNS_RDF_TYPE_TYPE</a>, <a class="el" href="rr_8c_source.html#l00950">ldns_rr_list_deep_free()</a>, <a class="el" href="rr_8c_source.html#l01028">ldns_rr_list_subtype_by_rdf()</a>, <a class="el" href="rr_8h_source.html#l00173">LDNS_RR_TYPE_RRSIG</a>, and <a class="el" href="packet_8h_source.html#l00280">LDNS_SECTION_ANY_NOQUESTION</a>.</p>

</div>
</div>
<a class="anchor" id="ad03207fb98d700dba5b9433c692145d3"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_pkt_get_rrsigs_for_type" ref="ad03207fb98d700dba5b9433c692145d3" args="(const ldns_pkt *pkt, ldns_rr_type type)" -->
<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_dnssec_pkt_get_rrsigs_for_type </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *&#160;</td>
          <td class="paramname"><em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a ldns_rr_list containing the signatures covering the given type. </p>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00245">245</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="packet_8c_source.html#l00284">ldns_pkt_rr_list_by_type()</a>, <a class="el" href="rdata_8c_source.html#l00241">ldns_rdf_free()</a>, <a class="el" href="rdata_8c_source.html#l00179">ldns_rdf_new()</a>, <a class="el" href="rdata_8h_source.html#l00073">LDNS_RDF_TYPE_TYPE</a>, <a class="el" href="rr_8c_source.html#l00950">ldns_rr_list_deep_free()</a>, <a class="el" href="rr_8c_source.html#l01028">ldns_rr_list_subtype_by_rdf()</a>, <a class="el" href="rr_8h_source.html#l00173">LDNS_RR_TYPE_RRSIG</a>, and <a class="el" href="packet_8h_source.html#l00280">LDNS_SECTION_ANY_NOQUESTION</a>.</p>

</div>
</div>
<a class="anchor" id="a7cf8c4687caff6153a61052c5523e7ab"></a><!-- doxytag: member="dnssec.h::ldns_calc_keytag" ref="a7cf8c4687caff6153a61052c5523e7ab" args="(const ldns_rr *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t ldns_calc_keytag </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>calculates a keytag of a key for use in DNSSEC. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>the key as an RR to use for the calc. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the keytag </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00272">272</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.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#l00302">ldns_calc_keytag_raw()</a>, <a class="el" href="buffer_8h_source.html#l00033">LDNS_MIN_BUFLEN</a>, <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="host2wire_8c_source.html#l00215">ldns_rr_rdata2buffer_wire()</a>, <a class="el" href="rr_8h_source.html#l00175">LDNS_RR_TYPE_DNSKEY</a>, and <a class="el" href="rr_8h_source.html#l00131">LDNS_RR_TYPE_KEY</a>.</p>

</div>
</div>
<a class="anchor" id="ace2d1cad66229876b3cec66db12f30f4"></a><!-- doxytag: member="dnssec.h::ldns_calc_keytag_raw" ref="ace2d1cad66229876b3cec66db12f30f4" args="(uint8_t *key, size_t keysize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t ldns_calc_keytag_raw </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>keysize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Calculates keytag of DNSSEC key, operates on wireformat rdata. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>the key as uncompressed wireformat rdata. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">keysize</td><td>length of key data. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the keytag </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00302">302</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="keys_8h_source.html#l00047">LDNS_RSAMD5</a>, and <a class="el" href="config_8h.html#a802c986820d3866639922b6bc9484f90">memmove()</a>.</p>

</div>
</div>
<a class="anchor" id="adbaf1b9197285c071a959f87ed8fb17d"></a><!-- doxytag: member="dnssec.h::ldns_key_buf2dsa" ref="adbaf1b9197285c071a959f87ed8fb17d" args="(ldns_buffer *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DSA* ldns_key_buf2dsa </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>converts a buffer holding key material to a DSA key in openssl. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>the key to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a DSA * structure with the key material </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00331">331</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

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

</div>
</div>
<a class="anchor" id="a5f90e74b05b4cdf65d11c17e5c887b30"></a><!-- doxytag: member="dnssec.h::ldns_key_buf2dsa_raw" ref="a5f90e74b05b4cdf65d11c17e5c887b30" args="(unsigned char *key, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DSA* ldns_key_buf2dsa_raw </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like ldns_key_buf2dsa, but uses raw buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>the uncompressed wireformat of the key. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>length of key data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a DSA * structure with the key material </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00338">338</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

</div>
</div>
<a class="anchor" id="a9483392f157e2ab100459c685eb7ea95"></a><!-- doxytag: member="dnssec.h::ldns_digest_evp" ref="a9483392f157e2ab100459c685eb7ea95" args="(unsigned char *data, unsigned int len, unsigned char *dest, const EVP_MD *md)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_digest_evp </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const EVP_MD *&#160;</td>
          <td class="paramname"><em>md</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Utility function to calculate hash using generic EVP_MD pointer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>the data to hash. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>length of data. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">dest</td><td>the destination of the hash, must be large enough. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">md</td><td>the message digest to use. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if worked, false on failure. </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00456">456</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

</div>
</div>
<a class="anchor" id="a1cfcc69e70c9c57016d56ddcb008f777"></a><!-- doxytag: member="dnssec.h::ldns_gost2pkey_raw" ref="a1cfcc69e70c9c57016d56ddcb008f777" args="(unsigned char *key, size_t keylen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EVP_PKEY* ldns_gost2pkey_raw </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>keylen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts a holding buffer with key material to EVP PKEY in openssl. </p>
<p>Only available if ldns was compiled with GOST. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>data to convert </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">keylen</td><td>length of the key data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the key or NULL on error. </dd></dl>

</div>
</div>
<a class="anchor" id="a1b3613e74929d32667ebbea2c3470ea8"></a><!-- doxytag: member="dnssec.h::ldns_ecdsa2pkey_raw" ref="a1b3613e74929d32667ebbea2c3470ea8" args="(unsigned char *key, size_t keylen, uint8_t algo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EVP_PKEY* ldns_ecdsa2pkey_raw </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>keylen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>algo</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts a holding buffer with key material to EVP PKEY in openssl. </p>
<p>Only available if ldns was compiled with ECDSA. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>data to convert </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">keylen</td><td>length of the key data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">algo</td><td>precise algorithm to initialize ECC group values. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the key or NULL on error. </dd></dl>

</div>
</div>
<a class="anchor" id="aeafba65095aa59f1ba109591701949c5"></a><!-- doxytag: member="dnssec.h::ldns_key_buf2rsa" ref="aeafba65095aa59f1ba109591701949c5" args="(ldns_buffer *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RSA* ldns_key_buf2rsa </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>converts a buffer holding key material to a RSA key in openssl. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>the key to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a RSA * structure with the key material </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00390">390</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8c_source.html#l00397">ldns_key_buf2rsa_raw()</a>.</p>

</div>
</div>
<a class="anchor" id="a37eb5a2d4b58a903884222cdabe56a76"></a><!-- doxytag: member="dnssec.h::ldns_key_buf2rsa_raw" ref="a37eb5a2d4b58a903884222cdabe56a76" args="(unsigned char *key, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RSA* ldns_key_buf2rsa_raw </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like ldns_key_buf2rsa, but uses raw buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>the uncompressed wireformat of the key. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>length of key data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a RSA * structure with the key material </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00397">397</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="config_8h.html#a802c986820d3866639922b6bc9484f90">memmove()</a>.</p>

</div>
</div>
<a class="anchor" id="acf9bb930301fbc1a2724321a7f2c8d90"></a><!-- doxytag: member="dnssec.h::ldns_key_rr2ds" ref="acf9bb930301fbc1a2724321a7f2c8d90" args="(const ldns_rr *key, ldns_hash h)" -->
<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_key_rr2ds </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="keys_8h.html#ab53d559230792e3951c8974631808fc5">ldns_hash</a>&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>returns a new DS rr that represents the given key rr. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*key</td><td>the key to convert </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>the hash to use LDNS_SHA1/LDNS_SHA256 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ldns_rr* a new rr pointer to a DS </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00475">475</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.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#l00272">ldns_calc_keytag()</a>, <a class="el" href="dnssec_8c_source.html#l00456">ldns_digest_evp()</a>, <a class="el" href="dname_8c_source.html#l00259">ldns_dname2canonical()</a>, <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="keys_8h_source.html#l00076">LDNS_HASH_GOST</a>, <a class="el" href="keys_8h.html#a631eb1d2915d9c72cd12a0e44a549f45">ldns_key_EVP_load_gost_id()</a>, <a class="el" href="packet_8h_source.html#l00024">LDNS_MAX_PACKETLEN</a>, <a class="el" href="host2wire_8c_source.html#l00036">ldns_rdf2buffer_wire()</a>, <a class="el" href="rdata_8c_source.html#l00222">ldns_rdf_clone()</a>, <a class="el" href="rdata_8c_source.html#l00230">ldns_rdf_deep_free()</a>, <a class="el" href="rdata_8c_source.html#l00193">ldns_rdf_new_frm_data()</a>, <a class="el" href="rdata_8h_source.html#l00069">LDNS_RDF_TYPE_HEX</a>, <a class="el" href="rdata_8h_source.html#l00053">LDNS_RDF_TYPE_INT16</a>, <a class="el" href="rdata_8h_source.html#l00051">LDNS_RDF_TYPE_INT8</a>, <a class="el" href="rr_8c_source.html#l00075">ldns_rr_free()</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#l00024">ldns_rr_new()</a>, <a class="el" href="rr_8c_source.html#l00849">ldns_rr_owner()</a>, <a class="el" href="rr_8c_source.html#l00787">ldns_rr_push_rdf()</a>, <a class="el" href="host2wire_8c_source.html#l00215">ldns_rr_rdata2buffer_wire()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="rr_8c_source.html#l00764">ldns_rr_set_class()</a>, <a class="el" href="rr_8c_source.html#l00734">ldns_rr_set_owner()</a>, <a class="el" href="rr_8c_source.html#l00746">ldns_rr_set_ttl()</a>, <a class="el" href="rr_8c_source.html#l00758">ldns_rr_set_type()</a>, <a class="el" href="rr_8c_source.html#l00861">ldns_rr_ttl()</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="sha1_8c_source.html#l00170">ldns_sha1()</a>, <a class="el" href="keys_8h_source.html#l00074">LDNS_SHA1</a>, <a class="el" href="sha1_8h_source.html#l00009">LDNS_SHA1_DIGEST_LENGTH</a>, <a class="el" href="sha2_8c_source.html#l00613">ldns_sha256()</a>, <a class="el" href="keys_8h_source.html#l00075">LDNS_SHA256</a>, <a class="el" href="sha2_8h_source.html#l00070">LDNS_SHA256_DIGEST_LENGTH</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="aa303ec9b0723ed4b954f1a2ff99a226a"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_create_nsec_bitmap" ref="aa303ec9b0723ed4b954f1a2ff99a226a" args="(ldns_rr_type rr_type_list[], size_t size, ldns_rr_type nsec_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_dnssec_create_nsec_bitmap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>rr_type_list</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>nsec_type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create the type bitmap for an NSEC(3) record. </p>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00658">658</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="rdata_8c_source.html#l00193">ldns_rdf_new_frm_data()</a>, <a class="el" href="rdata_8h_source.html#l00071">LDNS_RDF_TYPE_NSEC</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="util_8c_source.html#l00108">ldns_set_bit()</a>, <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>, and <a class="el" href="util_8h_source.html#l00057">LDNS_XREALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="aba8ade9eed84d1a95eab95622587a0b4"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_rrsets_contains_type" ref="aba8ade9eed84d1a95eab95622587a0b4" args="(ldns_dnssec_rrsets *rrsets, ldns_rr_type type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_dnssec_rrsets_contains_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__rrsets.html">ldns_dnssec_rrsets</a> *&#160;</td>
          <td class="paramname"><em>rrsets</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>returns whether a rrset of the given type is found in the rrsets. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rrsets</td><td>the rrsets to be tested </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>the type to test for </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>int 1 if the type was found, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00758">758</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec__zone_8h_source.html#l00038">ldns_struct_dnssec_rrsets::next</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="ae6fa0e94ef20702415ce458afc041f32"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_create_nsec" ref="ae6fa0e94ef20702415ce458afc041f32" args="(ldns_dnssec_name *from, ldns_dnssec_name *to, ldns_rr_type nsec_type)" -->
<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_dnssec_create_nsec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__name.html">ldns_dnssec_name</a> *&#160;</td>
          <td class="paramname"><em>from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__name.html">ldns_dnssec_name</a> *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>nsec_type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates NSEC. </p>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00772">772</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8c_source.html#l00658">ldns_dnssec_create_nsec_bitmap()</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="rdata_8c_source.html#l00222">ldns_rdf_clone()</a>, <a class="el" href="rr_8c_source.html#l00024">ldns_rr_new()</a>, <a class="el" href="rr_8c_source.html#l00787">ldns_rr_push_rdf()</a>, <a class="el" href="rr_8c_source.html#l00734">ldns_rr_set_owner()</a>, <a class="el" href="rr_8c_source.html#l00758">ldns_rr_set_type()</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#l00173">LDNS_RR_TYPE_RRSIG</a>, <a class="el" href="rr_8h_source.html#l00093">LDNS_RR_TYPE_SOA</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#l00064">ldns_struct_dnssec_name::rrsets</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="a91a04e82a9a91edf77c5eb736921bbbb"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_create_nsec3" ref="a91a04e82a9a91edf77c5eb736921bbbb" args="(ldns_dnssec_name *from, ldns_dnssec_name *to, ldns_rdf *zone_name, 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__rr.html">ldns_rr</a>* ldns_dnssec_create_nsec3 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__name.html">ldns_dnssec_name</a> *&#160;</td>
          <td class="paramname"><em>from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__dnssec__name.html">ldns_dnssec_name</a> *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>zone_name</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>Creates NSEC3. </p>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00826">826</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec__zone_8h_source.html#l00086">ldns_struct_dnssec_name::hashed_name</a>, <a class="el" href="dname_8c_source.html#l00072">ldns_dname_cat()</a>, <a class="el" href="dnssec_8c_source.html#l00658">ldns_dnssec_create_nsec_bitmap()</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="dnssec_8c_source.html#l01060">ldns_nsec3_add_param_rdfs()</a>, <a class="el" href="dnssec_8c_source.html#l00967">ldns_nsec3_hash_name()</a>, <a class="el" href="rdata_8c_source.html#l00222">ldns_rdf_clone()</a>, <a class="el" href="rr_8c_source.html#l00075">ldns_rr_free()</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_8c_source.html#l00787">ldns_rr_push_rdf()</a>, <a class="el" href="rr_8c_source.html#l00734">ldns_rr_set_owner()</a>, <a class="el" href="rr_8c_source.html#l00770">ldns_rr_set_rdf()</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#l00178">LDNS_RR_TYPE_NSEC3</a>, <a class="el" href="rr_8h_source.html#l00173">LDNS_RR_TYPE_RRSIG</a>, <a class="el" href="rr_8h_source.html#l00093">LDNS_RR_TYPE_SOA</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</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#l00064">ldns_struct_dnssec_name::rrsets</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="a9085186405931df151e3eac5d33292fb"></a><!-- doxytag: member="dnssec.h::ldns_create_nsec" ref="a9085186405931df151e3eac5d33292fb" args="(ldns_rdf *cur_owner, ldns_rdf *next_owner, ldns_rr_list *rrs)" -->
<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_nsec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>cur_owner</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>next_owner</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>rrs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a NSEC record. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cur_owner</td><td>the current owner which should be taken as the starting point </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">next_owner</td><td>the rrlist which the nsec rr should point to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rrs</td><td>all rrs from the zone, to find all RR types of cur_owner in </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a ldns_rr with the nsec record in it </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00917">917</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8c_source.html#l00658">ldns_dnssec_create_nsec_bitmap()</a>, <a class="el" href="rdata_8c_source.html#l00222">ldns_rdf_clone()</a>, <a class="el" href="rdata_8c_source.html#l00569">ldns_rdf_compare()</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#l00887">ldns_rr_list_rr_count()</a>, <a class="el" href="rr_8c_source.html#l00024">ldns_rr_new()</a>, <a class="el" href="rr_8c_source.html#l00849">ldns_rr_owner()</a>, <a class="el" href="rr_8c_source.html#l00787">ldns_rr_push_rdf()</a>, <a class="el" href="rr_8c_source.html#l00734">ldns_rr_set_owner()</a>, <a class="el" href="rr_8c_source.html#l00758">ldns_rr_set_type()</a>, <a class="el" href="rr_8h_source.html#l00174">LDNS_RR_TYPE_NSEC</a>, and <a class="el" href="rr_8h_source.html#l00173">LDNS_RR_TYPE_RRSIG</a>.</p>

</div>
</div>
<a class="anchor" id="aa516dac9f07ce8b5734b9dfd19376cae"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_hash_name" ref="aa516dac9f07ce8b5734b9dfd19376cae" args="(ldns_rdf *name, uint8_t algorithm, 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__rdf.html">ldns_rdf</a>* ldns_nsec3_hash_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>name</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">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>Calculates the hashed name using the given parameters. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*name</td><td>The owner name to calculate the hash for </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">algorithm</td><td>The hash algorithm to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">iterations</td><td>The number of hash iterations to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt_length</td><td>The length of the salt in bytes </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt</td><td>The salt to use </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The hashed owner name rdf, without the domain name </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l00967">967</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="util_8h.html#a1131c0b74b8b1d94d673aa222d0ef54b">ldns_b32_ntop_extended_hex()</a>, <a class="el" href="dname_8c_source.html#l00259">ldns_dname2canonical()</a>, <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</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="rdata_8c_source.html#l00230">ldns_rdf_deep_free()</a>, <a class="el" href="host2str_8c_source.html#l02161">ldns_rdf_print()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, <a class="el" href="sha1_8c_source.html#l00170">ldns_sha1()</a>, <a class="el" href="keys_8h_source.html#l00074">LDNS_SHA1</a>, <a class="el" href="sha1_8h_source.html#l00009">LDNS_SHA1_DIGEST_LENGTH</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="str2host_8c_source.html#l00292">ldns_str2rdf_dname()</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="a32e7e1f34ec0a19c6d20997bd4191b61"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_add_param_rdfs" ref="a32e7e1f34ec0a19c6d20997bd4191b61" args="(ldns_rr *rr, 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">void ldns_nsec3_add_param_rdfs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>rr</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>Sets all the NSEC3 options. </p>
<p>The rr to set them in must be initialized with _new() and type LDNS_RR_TYPE_NSEC3 </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*rr</td><td>The RR to set the values in </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">algorithm</td><td>The NSEC3 hash algorithm </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>The flags field </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">iterations</td><td>The number of hash iterations </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt_length</td><td>The length of the salt in bytes </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">salt</td><td>The salt bytes </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01060">1060</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="rdata_8c_source.html#l00132">ldns_native2rdf_int16()</a>, <a class="el" href="rdata_8c_source.html#l00230">ldns_rdf_deep_free()</a>, <a class="el" href="rdata_8c_source.html#l00193">ldns_rdf_new_frm_data()</a>, <a class="el" href="rdata_8h_source.html#l00053">LDNS_RDF_TYPE_INT16</a>, <a class="el" href="rdata_8h_source.html#l00051">LDNS_RDF_TYPE_INT8</a>, <a class="el" href="rdata_8h_source.html#l00105">LDNS_RDF_TYPE_NSEC3_SALT</a>, <a class="el" href="rr_8c_source.html#l00770">ldns_rr_set_rdf()</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="a4f2743c769d775eb5b6448286621da0c"></a><!-- doxytag: member="dnssec.h::ldns_create_nsec3" ref="a4f2743c769d775eb5b6448286621da0c" args="(ldns_rdf *cur_owner, ldns_rdf *cur_zone, ldns_rr_list *rrs, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt, bool emptynonterminal)" -->
<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_nsec3 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>cur_owner</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>cur_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>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">bool&#160;</td>
          <td class="paramname"><em>emptynonterminal</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_8c_source.html#l01131">1131</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00072">ldns_dname_cat()</a>, <a class="el" href="dname_8c_source.html#l00338">ldns_dname_compare()</a>, <a class="el" href="dnssec_8c_source.html#l00658">ldns_dnssec_create_nsec_bitmap()</a>, <a class="el" href="dnssec_8c_source.html#l01060">ldns_nsec3_add_param_rdfs()</a>, <a class="el" href="dnssec_8c_source.html#l00967">ldns_nsec3_hash_name()</a>, <a class="el" href="rdata_8c_source.html#l00569">ldns_rdf_compare()</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#l00887">ldns_rr_list_rr_count()</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_8c_source.html#l00787">ldns_rr_push_rdf()</a>, <a class="el" href="rr_8c_source.html#l00734">ldns_rr_set_owner()</a>, <a class="el" href="rr_8c_source.html#l00770">ldns_rr_set_rdf()</a>, <a class="el" href="rr_8c_source.html#l00758">ldns_rr_set_type()</a>, <a class="el" href="rr_8h_source.html#l00178">LDNS_RR_TYPE_NSEC3</a>, <a class="el" href="rr_8h_source.html#l00173">LDNS_RR_TYPE_RRSIG</a>, <a class="el" href="rr_8h_source.html#l00093">LDNS_RR_TYPE_SOA</a>, and <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>.</p>

</div>
</div>
<a class="anchor" id="ac3466657ba6e849ddcf44547729b7654"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_algorithm" ref="ac3466657ba6e849ddcf44547729b7654" args="(const ldns_rr *nsec3_rr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t ldns_nsec3_algorithm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec3_rr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the hash algorithm used in the given NSEC3 RR. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*nsec3_rr</td><td>The RR to read from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The algorithm identifier, or 0 on error </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01210">1210</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="rdata_8c_source.html#l00070">ldns_rdf2native_int8()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="rr_8h_source.html#l00178">LDNS_RR_TYPE_NSEC3</a>, and <a class="el" href="rr_8h_source.html#l00179">LDNS_RR_TYPE_NSEC3PARAM</a>.</p>

</div>
</div>
<a class="anchor" id="a8095ff0b971736da0fac9f09ed4a70e2"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_flags" ref="a8095ff0b971736da0fac9f09ed4a70e2" args="(const ldns_rr *nsec3_rr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t ldns_nsec3_flags </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec3_rr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns flags field. </p>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01223">1223</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="rdata_8c_source.html#l00070">ldns_rdf2native_int8()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="rr_8h_source.html#l00178">LDNS_RR_TYPE_NSEC3</a>, and <a class="el" href="rr_8h_source.html#l00179">LDNS_RR_TYPE_NSEC3PARAM</a>.</p>

</div>
</div>
<a class="anchor" id="aa0afddc06606bb7b2cf5a01498a75f74"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_optout" ref="aa0afddc06606bb7b2cf5a01498a75f74" args="(const ldns_rr *nsec3_rr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ldns_nsec3_optout </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec3_rr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if the opt-out flag has been set in the given NSEC3 RR. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*nsec3_rr</td><td>The RR to read from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the RR has type NSEC3 and the opt-out bit has been set, false otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01236">1236</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8c_source.html#l01223">ldns_nsec3_flags()</a>, and <a class="el" href="rdata_8h_source.html#l00039">LDNS_NSEC3_VARS_OPTOUT_MASK</a>.</p>

</div>
</div>
<a class="anchor" id="a30ee21fd35125587a36cfddab232af60"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_iterations" ref="a30ee21fd35125587a36cfddab232af60" args="(const ldns_rr *nsec3_rr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t ldns_nsec3_iterations </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec3_rr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of hash iterations used in the given NSEC3 RR. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*nsec3_rr</td><td>The RR to read from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of iterations </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01242">1242</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="rdata_8c_source.html#l00084">ldns_rdf2native_int16()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="rr_8h_source.html#l00178">LDNS_RR_TYPE_NSEC3</a>, and <a class="el" href="rr_8h_source.html#l00179">LDNS_RR_TYPE_NSEC3PARAM</a>.</p>

</div>
</div>
<a class="anchor" id="ad51179f10589890c3d774cc20f253bc2"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_salt" ref="ad51179f10589890c3d774cc20f253bc2" args="(const ldns_rr *nsec3_rr)" -->
<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_nsec3_salt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec3_rr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the salt used in the given NSEC3 RR. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*nsec3_rr</td><td>The RR to read from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The salt rdf, or NULL on error </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01256">1256</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="rr_8h_source.html#l00178">LDNS_RR_TYPE_NSEC3</a>, and <a class="el" href="rr_8h_source.html#l00179">LDNS_RR_TYPE_NSEC3PARAM</a>.</p>

</div>
</div>
<a class="anchor" id="a7fa2f6a7ad9c4c69a3705e2fa3065556"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_salt_length" ref="a7fa2f6a7ad9c4c69a3705e2fa3065556" args="(const ldns_rr *nsec3_rr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t ldns_nsec3_salt_length </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec3_rr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the length of the salt used in the given NSEC3 RR. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*nsec3_rr</td><td>The RR to read from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The length of the salt in bytes </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01268">1268</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8c_source.html#l01256">ldns_nsec3_salt()</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, and <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>.</p>

</div>
</div>
<a class="anchor" id="a96ef18b4efc39b04aba2df85a272b958"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_salt_data" ref="a96ef18b4efc39b04aba2df85a272b958" args="(const ldns_rr *nsec3_rr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* ldns_nsec3_salt_data </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec3_rr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the salt bytes used in the given NSEC3 RR. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*nsec3_rr</td><td>The RR to read from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The salt in bytes, this is alloced, so you need to free it </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01279">1279</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8c_source.html#l01256">ldns_nsec3_salt()</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="ad1eecc66294a1195664dd1ba195a57b0"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_next_owner" ref="ad1eecc66294a1195664dd1ba195a57b0" args="(const ldns_rr *nsec3_rr)" -->
<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_nsec3_next_owner </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec3_rr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the first label of the next ownername in the NSEC3 chain (ie. </p>
<p>without the domain) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nsec3_rr</td><td>The RR to read from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The first label of the next owner name in the NSEC3 chain, or NULL on error </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01296">1296</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, and <a class="el" href="rr_8h_source.html#l00178">LDNS_RR_TYPE_NSEC3</a>.</p>

</div>
</div>
<a class="anchor" id="ac60cd95b31e771323d711d404c917167"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_bitmap" ref="ac60cd95b31e771323d711d404c917167" args="(const ldns_rr *nsec3_rr)" -->
<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_nsec3_bitmap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec3_rr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the bitmap specifying the covered types of the given NSEC3 RR. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*nsec3_rr</td><td>The RR to read from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The covered type bitmap rdf </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01306">1306</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, and <a class="el" href="rr_8h_source.html#l00178">LDNS_RR_TYPE_NSEC3</a>.</p>

</div>
</div>
<a class="anchor" id="acac169a05f307efe9226b872904f644e"></a><!-- doxytag: member="dnssec.h::ldns_nsec3_hash_name_frm_nsec3" ref="acac169a05f307efe9226b872904f644e" args="(const ldns_rr *nsec, ldns_rdf *name)" -->
<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_nsec3_hash_name_frm_nsec3 </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Calculates the hashed name using the parameters of the given NSEC3 RR. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*nsec</td><td>The RR to use the parameters from </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*name</td><td>The owner name to calculate the hash for </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The hashed owner name rdf, without the domain name </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01316">1316</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="dnssec_8c_source.html#l01210">ldns_nsec3_algorithm()</a>, <a class="el" href="dnssec_8c_source.html#l00967">ldns_nsec3_hash_name()</a>, <a class="el" href="dnssec_8c_source.html#l01242">ldns_nsec3_iterations()</a>, <a class="el" href="dnssec_8c_source.html#l01279">ldns_nsec3_salt_data()</a>, and <a class="el" href="dnssec_8c_source.html#l01268">ldns_nsec3_salt_length()</a>.</p>

</div>
</div>
<a class="anchor" id="ab60bf88f5cc38b9d8a8e052ce5c33fde"></a><!-- doxytag: member="dnssec.h::ldns_nsec_bitmap_covers_type" ref="ab60bf88f5cc38b9d8a8e052ce5c33fde" args="(const ldns_rdf *nsec_bitmap, ldns_rr_type type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ldns_nsec_bitmap_covers_type </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>nsec_bitmap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks coverage of NSEC RR type bitmap. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nsec_bitmap</td><td>The NSEC bitmap rdata field to check </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>The type to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the NSEC RR covers the type </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01341">1341</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="util_8c_source.html#l00088">ldns_get_bit()</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, and <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>.</p>

</div>
</div>
<a class="anchor" id="ae580eb88c6a29558c572e097890099dc"></a><!-- doxytag: member="dnssec.h::ldns_nsec_covers_name" ref="ae580eb88c6a29558c572e097890099dc" args="(const ldns_rr *nsec, const ldns_rdf *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ldns_nsec_covers_name </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>nsec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks coverage of NSEC(3) RR name span Remember that nsec and name must both be in canonical form (ie use <a class="el" href="rr_8h.html#a6e26228733c74b4fb7aacc985a350519">ldns_rr2canonical</a> and <a class="el" href="dname_8h.html#aab93b3e88152119737f42d624fd34795">ldns_dname2canonical</a> prior to calling this function) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nsec</td><td>The NSEC RR to check </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The owner dname to check, if the nsec record is a NSEC3 record, this should be the hashed name </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the NSEC RR covers the owner name </dd></dl>

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

<p>References <a class="el" href="dname_8c_source.html#l00072">ldns_dname_cat()</a>, <a class="el" href="dname_8c_source.html#l00338">ldns_dname_compare()</a>, <a class="el" href="dname_8c_source.html#l00171">ldns_dname_left_chop()</a>, <a class="el" href="dname_8c_source.html#l00247">ldns_dname_new_frm_str()</a>, <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="error_8c_source.html#l00097">ldns_get_errorstr_by_id()</a>, <a class="el" href="dnssec_8c_source.html#l01296">ldns_nsec3_next_owner()</a>, <a class="el" href="host2str_8c_source.html#l02043">ldns_rdf2str()</a>, <a class="el" href="rdata_8c_source.html#l00222">ldns_rdf_clone()</a>, <a class="el" href="rdata_8c_source.html#l00230">ldns_rdf_deep_free()</a>, <a class="el" href="rr_8c_source.html#l00873">ldns_rr_get_type()</a>, <a class="el" href="rr_8c_source.html#l00849">ldns_rr_owner()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</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>, and <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>.</p>

</div>
</div>
<a class="anchor" id="a0ee15f04de7f380ca19326fc7851c444"></a><!-- doxytag: member="dnssec.h::ldns_pkt_verify" ref="a0ee15f04de7f380ca19326fc7851c444" args="(ldns_pkt *p, ldns_rr_type t, ldns_rdf *o, ldns_rr_list *k, ldns_rr_list *s, ldns_rr_list *good_keys)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> ldns_pkt_verify </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>o</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>k</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>s</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>good_keys</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>verify a packet </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>the packet </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">t</td><td>the rr set type to check </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">o</td><td>the rr set name to check </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>list of keys </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>list of sigs (may be null) </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">good_keys</td><td>keys which validated the packet </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>status </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01484">1484</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8c_source.html#l01423">ldns_pkt_verify_time()</a>.</p>

</div>
</div>
<a class="anchor" id="af145cf7773677c0fffe56f5df5106c76"></a><!-- doxytag: member="dnssec.h::ldns_pkt_verify_time" ref="af145cf7773677c0fffe56f5df5106c76" args="(ldns_pkt *p, ldns_rr_type t, ldns_rdf *o, ldns_rr_list *k, ldns_rr_list *s, time_t check_time, ldns_rr_list *good_keys)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> ldns_pkt_verify_time </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a>&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>o</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>k</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>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">time_t&#160;</td>
          <td class="paramname"><em>check_time</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>good_keys</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>verify a packet </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>the packet </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">t</td><td>the rr set type to check </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">o</td><td>the rr set name to check </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>list of keys </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>list of sigs (may be null) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">check_time</td><td>the time for which the validation is performed </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">good_keys</td><td>keys which validated the packet </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>status </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01423">1423</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="packet_8c_source.html#l00320">ldns_pkt_rr_list_by_name_and_type()</a>, <a class="el" href="rdata_8c_source.html#l00179">ldns_rdf_new()</a>, <a class="el" href="rdata_8h_source.html#l00073">LDNS_RDF_TYPE_TYPE</a>, <a class="el" href="rr_8c_source.html#l01028">ldns_rr_list_subtype_by_rdf()</a>, <a class="el" href="rr_8h_source.html#l00173">LDNS_RR_TYPE_RRSIG</a>, <a class="el" href="packet_8h_source.html#l00280">LDNS_SECTION_ANY_NOQUESTION</a>, <a class="el" href="error_8h_source.html#l00037">LDNS_STATUS_ERR</a>, and <a class="el" href="dnssec__verify_8c_source.html#l01100">ldns_verify_time()</a>.</p>

</div>
</div>
<a class="anchor" id="ad00a2e53f01e8ae1c08402fc80dff757"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_chain_nsec3_list" ref="ad00a2e53f01e8ae1c08402fc80dff757" args="(ldns_rr_list *nsec3_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_chain_nsec3_list </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>nsec3_rrs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>chains nsec3 list </p>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01492">1492</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00526">ldns_dname_label()</a>, <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="host2str_8c_source.html#l02043">ldns_rdf2str()</a>, <a class="el" href="rdata_8c_source.html#l00230">ldns_rdf_deep_free()</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#l00849">ldns_rr_owner()</a>, <a class="el" href="rr_8c_source.html#l00770">ldns_rr_set_rdf()</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, and <a class="el" href="str2host_8c_source.html#l00580">ldns_str2rdf_b32_ext()</a>.</p>

</div>
</div>
<a class="anchor" id="ae641000a4b7f8c7229e1d3ece8067f39"></a><!-- doxytag: member="dnssec.h::qsort_rr_compare_nsec3" ref="ae641000a4b7f8c7229e1d3ece8067f39" args="(const void *a, const void *b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int qsort_rr_compare_nsec3 </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>compare for nsec3 sort </p>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01545">1545</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="rdata_8c_source.html#l00569">ldns_rdf_compare()</a>, and <a class="el" href="rr_8c_source.html#l00849">ldns_rr_owner()</a>.</p>

</div>
</div>
<a class="anchor" id="a411a6000cc312ebf353ab0e302b97aec"></a><!-- doxytag: member="dnssec.h::ldns_rr_list_sort_nsec3" ref="a411a6000cc312ebf353ab0e302b97aec" args="(ldns_rr_list *unsorted)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ldns_rr_list_sort_nsec3 </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>unsorted</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>sort nsec3 list </p>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01562">1562</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="rr_8h_source.html#l00307">ldns_struct_rr_list::_rrs</a>, <a class="el" href="rr_8c_source.html#l00887">ldns_rr_list_rr_count()</a>, and <a class="el" href="dnssec_8c_source.html#l01545">qsort_rr_compare_nsec3()</a>.</p>

</div>
</div>
<a class="anchor" id="ada58948f5d105d7817ea47608e974d78"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_default_add_to_signatures" ref="ada58948f5d105d7817ea47608e974d78" args="(ldns_rr *sig, void *n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_dnssec_default_add_to_signatures </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default callback function to always leave present signatures, and add new ones. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The signature to check for removal (unused) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Optional argument (unused) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_SIGNATURE_LEAVE_ADD_NEW </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01571">1571</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8h_source.html#l00047">LDNS_SIGNATURE_LEAVE_ADD_NEW</a>.</p>

</div>
</div>
<a class="anchor" id="a8a5934ffbbfb621c63ba8bb841229808"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_default_leave_signatures" ref="a8a5934ffbbfb621c63ba8bb841229808" args="(ldns_rr *sig, void *n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_dnssec_default_leave_signatures </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default callback function to always leave present signatures, and add no new ones for the keys of these signatures. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The signature to check for removal (unused) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Optional argument (unused) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_SIGNATURE_LEAVE_NO_ADD </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01579">1579</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8h_source.html#l00048">LDNS_SIGNATURE_LEAVE_NO_ADD</a>.</p>

</div>
</div>
<a class="anchor" id="ac7efa063ce39cf4791dd30a4b41ab14c"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_default_delete_signatures" ref="ac7efa063ce39cf4791dd30a4b41ab14c" args="(ldns_rr *sig, void *n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_dnssec_default_delete_signatures </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default callback function to always remove present signatures, but add no new ones. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The signature to check for removal (unused) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Optional argument (unused) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_SIGNATURE_REMOVE_NO_ADD </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01587">1587</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8h_source.html#l00050">LDNS_SIGNATURE_REMOVE_NO_ADD</a>.</p>

</div>
</div>
<a class="anchor" id="aa20001e7098d4be9f24baf56a8761410"></a><!-- doxytag: member="dnssec.h::ldns_dnssec_default_replace_signatures" ref="aa20001e7098d4be9f24baf56a8761410" args="(ldns_rr *sig, void *n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_dnssec_default_replace_signatures </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default callback function to always leave present signatures, and add new ones. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The signature to check for removal (unused) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Optional argument (unused) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_SIGNATURE_REMOVE_ADD_NEW </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01595">1595</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="dnssec_8h_source.html#l00049">LDNS_SIGNATURE_REMOVE_ADD_NEW</a>.</p>

</div>
</div>
<a class="anchor" id="a4634cf53a0db48001bbbbdd17cc19776"></a><!-- doxytag: member="dnssec.h::ldns_convert_dsa_rrsig_asn12rdf" ref="a4634cf53a0db48001bbbbdd17cc19776" args="(const ldns_buffer *sig, const long sig_len)" -->
<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_convert_dsa_rrsig_asn12rdf </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>sig_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts the DSA signature from ASN1 representation (RFC2459, as used by OpenSSL) to raw signature data as used in DNS (rfc2536) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The signature in RFC2459 format </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sig_len</td><td>The length of the signature </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a new rdf with the signature </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01604">1604</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="rdata_8c_source.html#l00179">ldns_rdf_new()</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="ab108d2e53a4c50960af11f999a8ba546"></a><!-- doxytag: member="dnssec.h::ldns_convert_dsa_rrsig_rdf2asn1" ref="ab108d2e53a4c50960af11f999a8ba546" args="(ldns_buffer *target_buffer, const ldns_rdf *sig_rdf)" -->
<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_convert_dsa_rrsig_rdf2asn1 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>target_buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>sig_rdf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts the RRSIG signature RDF (in rfc2536 format) to a buffer with the signature in rfc2459 format. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">target_buffer</td><td>buffer to place the signature data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sig_rdf</td><td>The signature rdf to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, error code otherwise </dd></dl>

<p>Definition at line <a class="el" href="dnssec_8c_source.html#l01653">1653</a> of file <a class="el" href="dnssec_8c_source.html">dnssec.c</a>.</p>

<p>References <a class="el" href="buffer_8c_source.html#l00079">ldns_buffer_reserve()</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, <a class="el" href="error_8h_source.html#l00034">LDNS_STATUS_MEM_ERR</a>, <a class="el" href="error_8h_source.html#l00036">LDNS_STATUS_SSL_ERR</a>, <a class="el" href="error_8h_source.html#l00083">LDNS_STATUS_SYNTAX_RDATA_ERR</a>, and <a class="el" href="sha2_8c_source.html#l00191">R</a>.</p>

</div>
</div>
<a class="anchor" id="a6abc850382a62cd75779a03c6714513c"></a><!-- doxytag: member="dnssec.h::ldns_convert_ecdsa_rrsig_asn12rdf" ref="a6abc850382a62cd75779a03c6714513c" args="(const ldns_buffer *sig, const long sig_len)" -->
<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_convert_ecdsa_rrsig_asn12rdf </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>sig_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts the ECDSA signature from ASN1 representation (as used by OpenSSL) to raw signature data as used in DNS This routine is only present if ldns is compiled with ecdsa support. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The signature in ASN1 format </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sig_len</td><td>The length of the signature </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a new rdf with the signature </dd></dl>

</div>
</div>
<a class="anchor" id="a43edc2abba90771b264de3665b34e45a"></a><!-- doxytag: member="dnssec.h::ldns_convert_ecdsa_rrsig_rdf2asn1" ref="a43edc2abba90771b264de3665b34e45a" args="(ldns_buffer *target_buffer, const ldns_rdf *sig_rdf)" -->
<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_convert_ecdsa_rrsig_rdf2asn1 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>target_buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>sig_rdf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts the RRSIG signature RDF (from DNS) to a buffer with the signature in ASN1 format as openssl uses it. </p>
<p>This routine is only present if ldns is compiled with ecdsa support.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">target_buffer</td><td>buffer to place the signature data in ASN1. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sig_rdf</td><td>The signature rdf to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success, error code otherwise </dd></dl>

</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>