[ldns-users] ldns_dnssec_verify_denial() usage

Willem Toorop willem at nlnetlabs.nl
Mon Jun 18 12:34:38 UTC 2018


Op 15-06-18 om 15:31 schreef Jurijs Klopovskis:
> Hello.
> 
> I have a question about using ldns_dnssec_verify_denial() and
> ldns_dnssec_verify_denial_nsec3() functions.
> 
> Right now in out code we perform denial of existence checks with these
> functions only if ldns_verify() function has failed with
> LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY.
> 
> Is this sane?

Did you start out with a ldns_pkt?

If there were no RRsets for qname and qtype in the pkt, you can skip
ldns_verify() and start looking for NSECs (for
ldns_dnssec_verify_denial() ) or NSEC3s (for
ldns_dnssec_verify_denial_nsec3() ) right away.

But even when you did found RRsets for qname and qtype and ldns_verify()
returned LDNS_STATUS_OK, you still have to check whether it validated a
wildcard match, in which case you have to verify that a more specific
qname/qtype did not exist.

Note that getdns has a more convenient higher level function for this:

https://getdnsapi.net/functions/getdns_validate_dnssec.html
https://getdnsapi.net/functions/getdns_validate_dnssec2.html

Which can take a whole DNS message/packet as input and return the DNSSEC
status, regardless of whether the reply is for a NOERROR, NXDOMAIN or
NODATA response.  Also wildcard responses are validated correctly
automatically with that function.  (and you don't have to handle NSECs
and NSEC3s differently either).

-- Willem
> 
> _______________________________________________
> ldns-users mailing list
> ldns-users at nlnetlabs.nl
> https://open.nlnetlabs.nl/mailman/listinfo/ldns-users




More information about the ldns-users mailing list