int buf_canon = 0;
verbose(VERB_ALGO, "verify sig %d %d", (int)tag, algo);
if(!dnskey_algo_id_is_supported(algo)) {
+ // @TODO do we do LDNS_EDE_UNSUPPORTED_DNSKEY_ALG here?
+ // if (reason_bogus)
+ // *reason_bogus = LDNS_EDE_UNSUPPORTED_DNSKEY_ALG;
verbose(VERB_QUERY, "verify sig: unknown algorithm");
return sec_status_insecure;
}
"signature bad", expi, incep, now);
*reason = "signature inception after expiration";
/* @TODO Tom, wat hier te doen? */
+
return 0;
}
if(compare_1982(incep, now) > 0) {
if(!has_useful_ds) {
verbose(VERB_ALGO, "No usable DS records were found -- "
"treating as insecure.");
+ // @TODO add ede DNSSEC Indeterminate?
return sec_status_insecure;
}
/* If any were understandable, then it is bad. */
if(lt) snprintf(aerr, sizeof(aerr), "%s", lt->name);
else snprintf(aerr, sizeof(aerr), "%d",
(int)ds_get_key_algo(ds_rrset, i));
+
+ // @TODO do we want to add EDE Unsupported DS Digest Type here?
+
verbose(VERB_ALGO, "DS unsupported, hash %s %s, "
"key algorithm %s %s", herr,
(ds_digest_algo_is_supported(ds_rrset, 0)?
verbose(VERB_DETAIL, "DS response was error, thus bogus");
errinf(qstate, rc);
errinf(qstate, "no DS");
+
goto return_bogus;
}
goto return_bogus;
}
return_bogus:
+
+ // @TODO add EDE NSEC MISSING
+
*ke = key_entry_create_bad(qstate->region, qinfo->qname,
qinfo->qname_len, qinfo->qclass,
BOGUS_KEY_TTL, *qstate->env->now);