Commit Graph

10804 Commits

Author SHA1 Message Date
Artem Boldariev
bd033f92fd DIG: fix handling of +http-plain-{get, post} options
Support for parsing +http-plain-get and +http-plain-post options was
broken. This commit fixes that.

(cherry picked from commit fb135867644684a21d79bc3a5cebe3c83217a221)
2022-08-18 14:24:27 +03:00
Mark Andrews
d19916bde4 Improve awk tests to prevent false negatives
The old code could incorrectly match "INSOA" in the RRSIG rdata
when looking for the SOA record.

(cherry picked from commit 2fc5f6fb2831697c79f75c50a769449ac561aad0)
2022-08-18 13:43:33 +10:00
Mark Andrews
d48f9f84e3 Fix mkeys to work with DEFAULT_ALGORITHM properly
Stop using a RSASHA1 fixed key in ns3's named.conf as the
trusted key and instead compute a broken digest from the
real digest to use in trusted-keys.

(cherry picked from commit be4cbe2b80)
2022-08-10 14:06:57 +02:00
Mark Andrews
7e1b02fc4e kasp: stop using RSASHA1 unless necessary for the test
Moves tests from being RSASHA1 based to RSASHA256 based where possible
and split out the remaining RSASHA1 based tests so that they are not
run on OS's that don't support RSASHA1.

(cherry picked from commit db028684e5)
2022-08-10 17:26:29 +10:00
Mark Andrews
62ddc10933 keymgr2kasp: use FIPS compliant algorithms and key sizes
migrate-nomatch-alglen: switched to RSASHA256 instead of RSASHA1
and the key size now changes from 2048 bits to 3072 bits instead
of 1024 bits to 2048 bits.

migrate-nomatch-algnum: switched to RSASHA256 instead of RSASHA1
as initial algorithm and adjusted mininum key size to 2048 bits.

rsasha256: adjusted minimum key size to 2048 bits.

(cherry picked from commit 048b015166)
2022-08-10 17:26:29 +10:00
Mark Andrews
945f901722 dnssec/signer/general: Replace RSASHA1 keys with RSASHA512 keys
RSASHA1 is verify only in FIPS mode. Use RSASHA256 instead.

(cherry picked from commit 9c6de6d12d)
2022-08-10 17:26:29 +10:00
Mark Andrews
c652c94024 autosign: use FIPS compatible algorithms and key sizes
The nsec-only.example zone was not converted as we use it to
test nsec-only DNSSEC algorithms to nsec3 conversion failure.
The subtest is skipped in fips mode.

Update "checking revoked key with duplicate key ID" test
to use FIPS compatible algorithm.

(cherry picked from commit 99ad09975e)
2022-08-10 17:26:29 +10:00
Mark Andrews
5b3c17f330 rsabigexponent: convert the test from RSASHA1 to RSASHA256
RSASHA1 is not supported on some platforms.

(cherry picked from commit 8c3c011860)
2022-08-10 17:26:29 +10:00
Mark Andrews
ff17c10d7d notify: remove duplicate test number
(cherry picked from commit d396aa227e)
2022-08-10 17:26:29 +10:00
Mark Andrews
69a8132d7d mkeys: use $() instead of back quotes
(cherry picked from commit 0e45a2b02c)
2022-08-10 17:26:29 +10:00
Mark Andrews
aff8219f3e Upgrade uses of hmac-sha1 to DEFAULT_HMAC
where the test is not hmac-sha1 specific

(cherry picked from commit c533e8bc5b)
2022-08-10 17:26:29 +10:00
Mark Andrews
c6adebb22c zonechecks: use $DEFAULT_ALGORITHM
(cherry picked from commit 459e6980e5)
2022-08-10 17:25:26 +10:00
Mark Andrews
2e3554fe68 wildcard: use $DEFAULT_ALGORITHM
(cherry picked from commit 3f65c9cf85)
2022-08-10 17:25:26 +10:00
Mark Andrews
23e087131a views: use $DEFAULT_ALGORITHM
(cherry picked from commit 86b29606c3)
2022-08-10 17:25:26 +10:00
Mark Andrews
0b05da9f29 verify: use $DEFAULT_ALGORITHM
(cherry picked from commit 93f7c7cdcd)
2022-08-10 17:25:26 +10:00
Mark Andrews
d3a502f19e upforwd: use $DEFAULT_ALGORITHM
(cherry picked from commit 5585909904)
2022-08-10 17:25:26 +10:00
Mark Andrews
620a16bcff unknown: use $DEFAULT_ALGORITHM
(cherry picked from commit 9970d4317d)
2022-08-10 17:25:26 +10:00
Mark Andrews
6d544309a0 synthfromdnssec: use $DEFAULT_ALGORITHM
(cherry picked from commit 73fd49f8bb)
2022-08-10 17:25:26 +10:00
Mark Andrews
2144febc9d staticstub: use $DEFAULT_ALGORITHM
(cherry picked from commit 32337b9dbf)
2022-08-10 17:25:26 +10:00
Mark Andrews
b380473ca2 smartsign: use $DEFAULT_ALGORITHM
(cherry picked from commit 941b95edb0)
2022-08-10 17:25:26 +10:00
Mark Andrews
bb981e0d68 rpz: use $DEFAULT_ALGORITHM
(cherry picked from commit 1861c3e503)
2022-08-10 17:25:26 +10:00
Mark Andrews
b57457e754 rootkeysentinel: use $DEFAULT_ALGORITHM
(cherry picked from commit b0e1d9b1b3)
2022-08-10 17:25:26 +10:00
Mark Andrews
e756c4c0f3 resolver: use $DEFAULT_ALGORITHM
(cherry picked from commit 05ef8c81dd)
2022-08-10 17:25:26 +10:00
Mark Andrews
62d50d3b23 redirect: use $DEFAULT_ALGORITHM
(cherry picked from commit e0e03602ba)
2022-08-10 17:25:26 +10:00
Mark Andrews
c1f7fd282a pending: use $DEFAULT_ALGORITHM
(cherry picked from commit 6fd50b9fda)
2022-08-10 17:25:26 +10:00
Mark Andrews
c5d5e20c8f nsupdate: use $DEFAULT_ALGORITHM
(cherry picked from commit c2d18567fc)
2022-08-10 17:25:26 +10:00
Mark Andrews
64d2dc174b mkeys: use $DEFAULT_ALGORITHM
(cherry picked from commit 78fa082999)
2022-08-10 17:25:26 +10:00
Mark Andrews
647e4c0d9b mirror: use $DEFAULT_ALGORITHM
(cherry picked from commit ff95bafa39)
2022-08-10 17:25:26 +10:00
Mark Andrews
7c100effd2 metadata: use $DEFAULT_ALGORITHM
(cherry picked from commit 3f1dc83bfb)
2022-08-10 17:25:26 +10:00
Mark Andrews
db5eb04f4a inline: use $DEFAULT_ALGORITHM
(cherry picked from commit e3acddefd1)
2022-08-10 17:25:26 +10:00
Mark Andrews
73f2c501a5 dsdigest: use $DEFAULT_ALGORITHM
(cherry picked from commit 49de14cb9e)
2022-08-10 17:25:26 +10:00
Mark Andrews
5aad0a38e8 dnssec: use $DEFAULT_ALGORITHM
(cherry picked from commit d0b0139c90)
2022-08-10 17:25:26 +10:00
Mark Andrews
642d5963d9 dns64: use $DEFAULT_ALGORITHM
(cherry picked from commit 5cbf1e1598)
2022-08-10 17:25:26 +10:00
Mark Andrews
f3658af717 chain: use $DEFAULT_ALGORITHM
(cherry picked from commit 3419178bd2)
2022-08-10 17:25:26 +10:00
Mark Andrews
2cbfb22d2f cds: use $DEFAULT_ALGORITHM
(cherry picked from commit 6cf0b73ede)
2022-08-10 17:25:26 +10:00
Mark Andrews
f970186979 autosign: use $DEFAULT_ALGORITHM
(cherry picked from commit bb810b0ac9)
2022-08-10 17:25:26 +10:00
Mark Andrews
c06815dede Use DEFAULT_HMAC for rndc
(cherry picked from commit ce324ae8ba)
2022-08-10 17:25:26 +10:00
Aram Sargsyan
b23d88947a DiG: fix lookup reference counting bug
When DiG finishes its work with a lookup (due to success or error), it
calls the clear_current_lookup() function, which decreases the lookup's
reference count. That decrease action is the counterpart of the initial
creation of the reference counter, so this function was designed in such
a way that it should decrease the reference count only once, when there
are no more active queries in the lookup.

The way it checks whether there are any active queries is by looking
at the queries list of the lookup object - if it's NULL then there are
no active queries. But that is not always true - the cancel_lookup()
function, when canceling the queries one by one, also removes them
from the lookup's list, but in NSSEARCH mode, when the queries are
working in parallel, some of those queries can be still active. And
when their recv_done() callback gets called, it sees that the lookup
has been canceled, calls clear_current_lookup(), which decreases the
reference count every time for each query that was still active
(because ISC_LIST_HEAD(lookup->q) is NULL) and results in a reference
counting error.

Fix the issue by introducing a new "cleared" property for the lookup,
which will ensure that the clear_current_lookup() function does its
job only once per lookup.

(cherry picked from commit 08ba2732e0)
2022-08-08 10:48:38 +00:00
Aram Sargsyan
80094e4503 DiG: document +qid=<num> option in the usage summary
The +qid=<num> option, which sets the outgoing query ID, was missing
from the usage summary printed using `dig -h` command.

(cherry picked from commit 4dcc855093)
2022-07-28 09:14:56 +00:00
Mark Andrews
8fa29c5699 Ensure suffix is always valid in bin/tests/system/qmin/ans4/ans.py
initalise suffix to ""

    170        r.answer.append(
    171            dns.rrset.from_text(
    172                lqname + suffix, 1, IN, NS, "a.bit.longer.ns.name." + suffix
    173            )
    174        )
    175        r.flags |= dns.flags.AA
           15. Condition endswith(lqname, "icky.ptang.zoop.boing."), taking true branch.
    176    elif endswith(lqname, "icky.ptang.zoop.boing."):
           CID 350722 (#7 of 7): Bad use of null-like value (FORWARD_NULL)
           16. invalid_operation: Invalid operation on null-like value suffix.
    177        r.authority.append(
    178            dns.rrset.from_text(
    179                "icky.ptang.zoop.boing." + suffix,
    180                1,
    181                IN,
    182                SOA,
    183                "ns2." + suffix + " hostmaster.arpa. 2018050100 1 1 1 1",
    184            )
    185        )

(cherry picked from commit eb798d0478)
2022-07-27 14:27:18 -04:00
Evan Hunt
4720f13730 warn about zones with both dnssec-policy and max-zone-ttl
max-zone-ttl in zone/view/options is a no-op if dnssec-policy
is in use, so generate a warning.
2022-07-22 13:13:24 -07:00
Matthijs Mekking
793554c6ce Reject zones with TTL higher than dnssec-policy max-zone-ttl
Reject loading of zones with TTL higher than the max-zone-ttl
from the dnssec-policy.

With this change, any zone with a dnssec-policy in use will ignore
the max-zone-ttl option in zone/view/options.
2022-07-22 13:13:24 -07:00
Matthijs Mekking
9c872756c3 Test dnssec-policy max-zone-ttl rejects zone with too high TTL
Similar to the 'max-zone-ttl' zone option, the 'dnssec-policy' option
should reject zones with TTLs that are out of range.
2022-07-22 13:13:24 -07:00
Aram Sargsyan
ab8343a5f6 dig +nssearch: send more queries even if setting up one of them fails
In the NSSEARCH followup lookup, when one of the queries fails to be
set up (UDP) or connected (TCP), DiG doesn't start the next query.
This is a mistake, because in NSSEARCH mode the queries are independent
and DiG shouldn't stop the lookup process just because setting up (or
connecting to) one of the name servers returns an error code in the
`udp_ready()` or `tcp_connected()` callbacks.

Write a new `nssearch_next()` function which takes care of starting the
next query in NSSEARCH mode, so it can be used in several places without
code repetition.

Make sure that the `udp_ready()` and `tcp_connected()` functions call
`nssearch_next()` in case they won't be calling `send_udp()` and
`send_tcp()` respectively, because in that case the `send_done()`
callback, which usually does the job, won't be called.

Refactor `send_done()` to use the newly written `nssearch_next()`
function.

(cherry picked from commit 76bee507b7)
2022-07-22 09:41:47 +00:00
Aram Sargsyan
8fecc9dc1e dig +nssearch: send more queries even if sending the previous one fails
In the NSSEARCH followup lookup, when one of the queries fails to be
sent, DiG doesn't start the next query. This is a mistake, because in
NSSEARCH mode the queries are independent and DiG shouldn't stop the
lookup process just because sending a query to one of the name servers
returns an error code.

Restructure the `send_done()` function to unconditionally send the next
query in NSSEARCH mode, if it exists.

(cherry picked from commit 49ac879dfa)
2022-07-22 09:41:41 +00:00
Aram Sargsyan
c0bb75e9ef Suppress warning/error comments in dig outputs for "rrsetorder" test
In the CI dig sometimes produces warning/error comments when
communicating with the server, which produces problems when comparing
the outputs.

Here is an example of a dig output with a warning message which
is benign, because dig, after a retry, managed to query the server.

;; communications error to 10.53.0.3#7529: timed out
1.2.3.1
1.2.3.2
1.2.3.3
1.2.3.4

When comparing this to the expected output, which doesn't contain
the comment line (starting with double ';'), the outputs don't match.

Use grep inverse logic to strip the comments from the dig outputs.

(cherry picked from commit a5b2aa7c97)
2022-07-22 09:03:54 +00:00
Aram Sargsyan
048a035267 Add "digdelv" test to simulate DiG network unreachable error
There are existing tests for simulating timeouts, read errors, and
refused connecion errors. Implement also "network unreachable"
simulation.

Use "fixed" string search mode `-F` for `grep` in more places where
it is appropriate to do so.

(cherry picked from commit 626fbf325e)
2022-07-22 09:00:31 +00:00
Aram Sargsyan
29057d9911 DiG: use the same retry and fail-over logic for different failure types
DiG implements different logic in the `recv_done()` callback function
when processing a failure:

1. For a timed-out query it applies the "retries" logic first, then,
   when it fails, fail-overs to the next server.

2. For an EOF (end-of-file, or unexpected disconnect) error it tries to
   make a single retry attempt (even if the user has requested more
   retries), then, when it fails, fail-overs to the next server.

3. For other types of failures, DiG does not apply the "retries" logic,
   and tries to fail-over to the next servers (again, even if the user
   has requested to make retries).

Simplify the logic and apply the same logic (1) of first retries, and
then fail-over, for different types of failures in `recv_done()`.

(cherry picked from commit abfd0d363f)
2022-07-22 09:00:21 +00:00
Aram Sargsyan
6efb73d4bb Fix DiG query retry and fail-over bug
When the `send_done()` callback function gets called with a failure
result code, DiG erroneously cancels the lookup.

Stop canceling the lookup and give DiG a chance to retry the failed
query, or fail-over to another server, using the logic implemented in
the `recv_done()` callback function.

(cherry picked from commit c2329dd110)
2022-07-22 09:00:15 +00:00
Aram Sargsyan
be8ec6ef18 Fix DiG UDP query retry and fail-over bug
When the `udp_ready()` callback function gets called with a failure
result code, DiG erroneously cancels the lookup.

Copy the logic behind `tcp_connected()` callback function into
`udp_ready()` so that DiG will now retry the failed query (if retries
are enabled) and then, if it fails again, it will fail-over to the next
server in the list, which synchronizes the behavior between TCP and UDP
modes.

Also, `udp_ready()` was calling `lookup_detach()` without calling
`lookup_attach()` first, but the issue was masked behind the fact
that `clear_current_lookup()` wasn't being called when needed, and
`lookup_detach()` was compensating for that. This also has been fixed.

(cherry picked from commit 3f31085525)
2022-07-22 09:00:08 +00:00