From: Pieter Lexis Date: Fri, 21 Oct 2016 10:33:41 +0000 (+0200) Subject: NSEC3 optout and Bogus insecure forward fixes X-Git-Tag: rec-4.0.4~22^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=46a66669600ef1d52b866b17f2deeb1c354302e7;p=pdns NSEC3 optout and Bogus insecure forward fixes After the change to zonecuts to find key material, the NSEC3 checking returned an (incorrect) 'covering nxdomain' for a forwarded subzone with no DS record in its parent. After fixing this, the NSEC3 optout test failed as Bogus (instead of insecure). This was fixed by actually checking the optout flag on a delegation NSEC3 record. --- diff --git a/pdns/validate.cc b/pdns/validate.cc index 80241ba89..767967c9a 100644 --- a/pdns/validate.cc +++ b/pdns/validate.cc @@ -12,7 +12,7 @@ void dotNode(string type, DNSName name, string tag, string content); string dotName(string type, DNSName name, string tag); string dotEscape(string name); -const char *dStates[]={"nodata", "nxdomain", "nxqtype", "empty non-terminal", "insecure"}; +const char *dStates[]={"nodata", "nxdomain", "nxqtype", "empty non-terminal", "insecure", "opt-out"}; const char *vStates[]={"Indeterminate", "Bogus", "Insecure", "Secure", "NTA"}; typedef set keyset_t; @@ -83,7 +83,12 @@ static dState getDenial(const cspmap_t &validrrsets, const DNSName& qname, const (nsec3->d_nexthash < beginHash && beginHash < h) || // wrap other case END --- BEGINNING --- HASH beginHash == nsec3->d_nexthash)) // "we have only 1 NSEC3 record, LOL!" { - LOG("Denies existence of name "<d_flags & 1) { + LOG(" but is opt-out!"<