+15 September 2010: Wouter
+ - Abide RFC5155 section 9.2: no AD flag for replies with NSEC3 optout.
+
14 September 2010: Wouter
- increased mesh-max-activation from 1000 to 3000 for crazy domains
like _tcp.slb.com with 262 servers.
ENTRY_END
; recursion happens here.
-; the same answer gives AD flag for DS, because the optout says no DS exists.
+; no AD flag here because of RFC5155 9.2 section.
+; even though we are sure there is no DS, this is what the RFC says.
STEP 30 CHECK_ANSWER
ENTRY_BEGIN
MATCH all
-REPLY QR RD RA AD NOERROR
+REPLY QR RD RA NOERROR
SECTION QUESTION
sub.example.com. IN DS
SECTION ANSWER
"-- no more options, bogus.");
return sec_status_bogus;
}
- /* the optout is a secure denial of DS records */
- if(qinfo->qtype != LDNS_RR_TYPE_DS)
- return sec_status_insecure;
- return sec_status_secure;
+ /* RFC5155 section 9.2: if nc has optout then no AD flag set */
+ return sec_status_insecure;
}
enum sec_status
"DS NOERROR/NODATA case";
return sec_status_bogus;
}
- return sec_status_secure;
+ /* RFC5155 section 9.2: if nc has optout then no AD flag set */
+ return sec_status_insecure;
}
enum sec_status
msg->rep->rrsets + msg->rep->an_numrrsets,
msg->rep->ns_numrrsets, qinfo, vq->key_entry, &reason);
switch(sec) {
+ case sec_status_insecure:
+ /* case insecure also continues to unsigned
+ * space. If nsec3-iter-count too high or
+ * optout, then treat below as unsigned */
case sec_status_secure:
verbose(VERB_DETAIL, "NSEC3s for the "
"referral proved no DS.");
"referral did not prove no DS.");
errinf(qstate, reason);
goto return_bogus;
- case sec_status_insecure:
case sec_status_unchecked:
default:
/* NSEC3 proof did not work */