diff --git a/lib/dns/dnssec.c b/lib/dns/dnssec.c index e255b6e2a9..420c93aa05 100644 --- a/lib/dns/dnssec.c +++ b/lib/dns/dnssec.c @@ -1623,10 +1623,11 @@ dns_dnssec_keylistfromrdataset(const dns_name_t *origin, dns_rdata_reset(&rdata); dns_rdataset_current(&keys, &rdata); - /* Skip unsupported algorithms */ REQUIRE(rdata.type == dns_rdatatype_key || rdata.type == dns_rdatatype_dnskey); REQUIRE(rdata.length > 3); + + /* Skip unsupported algorithms */ if (!dst_algorithm_supported(rdata.data[3])) goto skip; diff --git a/lib/dns/nsec3.c b/lib/dns/nsec3.c index f30d69591b..9bd2b5781d 100644 --- a/lib/dns/nsec3.c +++ b/lib/dns/nsec3.c @@ -1813,12 +1813,13 @@ dns_nsec3_maxiterations(dns_db_t *db, dns_dbversion_t *version, dns_rdata_t rdata = DNS_RDATA_INIT; dns_rdataset_current(&rdataset, &rdata); - /* Skip unsupported algorithms when - * calculating the maximum iterations. - */ REQUIRE(rdata.type == dns_rdatatype_key || rdata.type == dns_rdatatype_dnskey); REQUIRE(rdata.length > 3); + + /* Skip unsupported algorithms when + * calculating the maximum iterations. + */ if (!dst_algorithm_supported(rdata.data[3])) continue;