1
0
Fork 0
bind9/bin/tests/system/dsdigest/tests_dsdigest.py
Daniel Baumann f66ff7eae6
Adding upstream version 1:9.20.9.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-21 13:32:37 +02:00

68 lines
1.8 KiB
Python

# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# SPDX-License-Identifier: MPL-2.0
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
import dns.message
import pytest
import isctest
pytestmark = pytest.mark.extra_artifacts(
[
"ns*/K*",
"ns*/dsset-*",
"ns*/trusted.conf",
"ns*/*.signed",
"ns1/root.db",
"ns2/bad.db",
"ns2/good.db",
]
)
def test_dsdigest_good():
"""Check that validation with enabled digest types works"""
msg = dns.message.make_query("a.good.", "A", want_dnssec=True)
res = isctest.query.tcp(
msg,
"10.53.0.3",
)
isctest.check.noerror(res)
assert res.flags & dns.flags.AD
def test_dsdigest_bad():
"""Check that validation with not supported digest types
and "dnssec-must-be-secure yes;" results in SERVFAIL"""
msg = dns.message.make_query("a.bad.", "A", want_dnssec=True)
res = isctest.query.tcp(
msg,
"10.53.0.3",
)
isctest.check.servfail(res)
def test_dsdigest_insecure():
"""Check that validation with not supported digest algorithms is insecure"""
msg_ds = dns.message.make_query("bad.", "DS", want_dnssec=True)
res_ds = isctest.query.tcp(
msg_ds,
"10.53.0.4",
)
isctest.check.noerror(res_ds)
assert res_ds.flags & dns.flags.AD
msg_a = dns.message.make_query("a.bad.", "A", want_dnssec=True)
res_a = isctest.query.tcp(
msg_a,
"10.53.0.4",
)
isctest.check.noerror(res_a)
assert not res_a.flags & dns.flags.AD