};
{% endif %}{# nsec3-dynamic.kasp #}
+{% if "nsec3-private-type-delete.kasp" in zones %}
+zone "nsec3-private-type-delete.kasp" {
+ type primary;
+ file "nsec3-private-type-delete.kasp.db";
+ dnssec-policy "nsec3";
+ inline-signing no;
+ allow-update { any; };
+};
+{% endif %}{# nsec3-private-type-delete.kasp #}
+
{% if "nsec3-other.kasp" in zones %}
/* This zone uses non-default NSEC3 settings. */
zone "nsec3-other.kasp" {
for zn in nsec-to-nsec3 nsec3 nsec3-other nsec3-change nsec3-to-nsec \
nsec3-to-optout nsec3-from-optout nsec3-dynamic \
nsec3-dynamic-change nsec3-dynamic-to-inline \
- nsec3-inline-to-dynamic nsec3-dynamic-update-inline; do
+ nsec3-inline-to-dynamic nsec3-dynamic-update-inline \
+ nsec3-private-type-delete; do
setup "${zn}.kasp"
done
import os
import dns.rcode
+import dns.rdatatype
import dns.update
import pytest
"nsec3-dynamic-update-inline.kasp",
"nsec3.kasp",
"nsec3-dynamic.kasp",
+ "nsec3-private-type-delete.kasp",
"nsec3-change.kasp",
"nsec3-dynamic-change.kasp",
"nsec3-dynamic-to-inline.kasp",
}
+def test_update_delete_private_type_rrset(ns3):
+ zone = "nsec3-private-type-delete.kasp"
+ fqdn = f"{zone}."
+
+ isctest.kasp.wait_keymgr_done(ns3, zone)
+
+ update_msg = dns.update.UpdateMessage(zone)
+ update_msg.add(fqdn, 0, dns.rdatatype.NSEC3PARAM, "1 0 5 ab")
+ response = isctest.query.tcp(
+ update_msg,
+ ns3.ip,
+ attempts=1,
+ expected_rcode=dns.rcode.NOERROR,
+ )
+ isctest.check.noerror(response)
+
+ update_msg = dns.update.UpdateMessage(zone)
+ update_msg.delete(fqdn, dns.rdatatype.from_text("TYPE65534"))
+ response = isctest.query.tcp(
+ update_msg,
+ ns3.ip,
+ attempts=1,
+ expected_rcode=dns.rcode.NOERROR,
+ )
+ isctest.check.noerror(response)
+
+
@pytest.mark.parametrize(
"params",
[