ldns(3)
π ldns β denial of existence, but make it make sense
okay bestie, so this is a page from the ldns library functions manual (that's the ldns(3) corner of the world πΈ), and today's main characters are ldns_dnssec_verify_denial and ldns_dnssec_verify_denial_nsec3. Yes, the title is a whole vibe: verify denial of existence. Sit with that for a sec. π«Ά
β¨ NAME β¨
ldns_dnssec_verify_denial, ldns_dnssec_verify_denial_nsec3 β verify denial of existence
like, proving that something doesn't exist. the audacity. the drama. obsessed. π
π SYNOPSIS π
#include <stdint.h>
#include <stdbool.h>
#include <ldns/ldns.h>
ldns_status ldns_dnssec_verify_denial(ldns_rr *rr, ldns_rr_list *nsecs,
ldns_rr_list *rrsigs);
ldns_status ldns_dnssec_verify_denial_nsec3(ldns_rr *rr, ldns_rr_list
*nsecs, ldns_rr_list *rrsigs, ldns_pkt_rcode packet_rcode, ldns_rr_type
packet_qtype, bool packet_nodata);
copy those includes exactly bestie, don't get cute with them π
π DESCRIPTION π
π ldns_dnssec_verify_denial()
denial is not just a river in egypt, bestie. π that's literally what the page says and honestly? iconic. this function checks whether a bunch of NSEC RRs actually succeed in denying that the queried RR exists.
here's the tea, argument by argument:
rrβ the (query) RR you're checking the denial of existence for πnsecsβ the list of NSEC RRs that are supposed to deny the existence of that RRrrsigsβ the RRSIG RR covering the NSEC RRs π
and what do you get back? LDNS_STATUS_OK if the NSEC RRs do deny the existence. if they don't, you get an error code that contains the reason why not. so it's not just "nope" β it's "nope, and here's exactly why." we love a function that explains itself. π
π§ ldns_dnssec_verify_denial_nsec3()
same denial-of-existence energy, but with NSEC3 records. because NSEC3 is a bit more complicated than normal denial (she's high maintenance, and honestly? valid), you gotta pass in some extra context arguments so she has everything she needs. π¦
the full cast:
rrβ the (query) RR to check the denial of existence fornsecsβ the list of NSEC3 RRs that are supposed to deny the existence of the RRrrsigsβ the RRSIG rr covering the NSEC RRspacket_rcodeβ the RCODE value of the packet that provided the NSEC3 RRs π¦packet_qtypeβ the original query RR typepacket_nodataβtrueif the providing packet had an empty ANSWER section (a whole empty-answer moment, we've all been there π)
return value? same deal as her sister: LDNS_STATUS_OK if the NSEC3 RRs deny the existence, otherwise an error code holding the reason they don't. no cap. π₯
π«Ά AUTHOR π«Ά
the ldns team at NLnet Labs. legends, honestly. π
π REPORTING BUGS π
found something cursed? please report bugs to dns-team@nlnetlabs.nl or on GitHub at https://github.com/NLnetLabs/ldns/issues β they want to know, fr fr. π
π COPYRIGHT π
Copyright (c) 2004 - 2006 NLnet Labs.
Licensed under the BSD License. and listen: there is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. read that again. no warranty bestie, none, not even the implied ones. π
πΈ SEE ALSO πΈ
ldns_dnssec_trust_treeldns_dnssec_data_chain
and perldoc Net::DNS, RFC1034, RFC1035, RFC4033, RFC4034 and RFC4035. yes that's a lot of RFCs, go read them, i'll wait. πβ¨
π REMARKS π
heads up: this manpage was automatically generated from the ldns source code. so if the prose feels a little robotic... that's because it was born that way. π§
okay and finally, the sign-off moment: this whole thing is dated 30 May 2006 and it belongs to the ldns(3) manual. so if you ever need to cite it, you know the date and you know the section. periodt. πβ¨π
π¦ where this page comes from
- alpine 3.22: ldns-doc 1.8.4-r0 Β· BSD-3-Clause
- alpine 3.23: ldns-doc 1.8.4-r1 Β· BSD-3-Clause
- alpine 3.24: ldns-doc 1.8.4-r1 Β· BSD-3-Clause
- arch rolling: ldns 1.9.2-1 Β· custom:BSD
- debian trixie: libldns-dev 1.8.4-2+b1
- fedora 43: ldns-devel 1.8.4-8.fc43 Β· BSD-3-Clause
- fedora 43: ldns-devel 1.8.4-8.fc43 Β· BSD-3-Clause
- fedora 43: ldns-devel 1.9.2-1.fc43 Β· BSD-3-Clause
- fedora 43: ldns-devel 1.9.2-1.fc43 Β· BSD-3-Clause
- fedora 44: ldns-devel 1.9.0-2.fc44 Β· BSD-3-Clause
- fedora 44: ldns-devel 1.9.0-2.fc44 Β· BSD-3-Clause
- fedora 44: ldns-devel 1.9.2-1.fc44 Β· BSD-3-Clause
- fedora 44: ldns-devel 1.9.2-1.fc44 Β· BSD-3-Clause
- nixos 26.05: ldns 1.9.2
- nixpkgs unstable: ldns 1.9.2
- opensuse-leap 16.0: ldns-devel 1.8.4-160000.3.1 Β· BSD-3-Clause
- opensuse-leap 16.0: ldns-devel 1.8.4-160000.3.1 Β· BSD-3-Clause
- opensuse-leap 16.0: ldns-devel 1.8.4-160000.3.1 Β· BSD-3-Clause
- opensuse-leap 16.0: ldns-devel 1.8.4-160000.3.1 Β· BSD-3-Clause
- ubuntu questing: libldns-dev 1.8.4-2build1
- ubuntu resolute: libldns-dev 1.8.4-2build3
- ubuntu stonking: libldns-dev 1.9.2-1ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms