mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 03:05:51 +03:00
[PR #3445] [MERGED] post-SIG(0) removal simplification of message signing/verifying #3854
Labels
No labels
blocked
breaking-change
bug
bug:critical
bug:tests
cleanup
compliance
compliance
compliance
crate:all
crate:client
crate:native-tls
crate:proto
crate:recursor
crate:resolver
crate:resolver
crate:rustls
crate:server
crate:util
dependencies
docs
duplicate
easy
easy
enhance
enhance
enhance
feature:dns-over-https
feature:dns-over-quic
feature:dns-over-tls
feature:dnsssec
feature:global_lb
feature:mdns
feature:tsig
features:edns
has workaround
ops
perf
platform:WASM
platform:android
platform:fuchsia
platform:linux
platform:macos
platform:windows
pull-request
question
test
tools
tools
trust
unclear
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/hickory-dns#3854
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/hickory-dns/hickory-dns/pull/3445
Author: @cpu
Created: 1/26/2026
Status: ✅ Merged
Merged: 1/29/2026
Merged by: @cpu
Base:
main← Head:cpu-simplify-tsig_dev📝 Commits (10+)
16194d5server: rm explicit return in blocklist storec6384f5additional SIG(0) removal comment tidying6872699proto: demote TsigAlgorithm.output_len() visibilitybc426efnet: gate client message signer on dnssecb2d9785net: use builder-style for DnsMultiplexer timeoutdd26627net: client/multiplexer dnssec gated signerc3e8bc1proto: move tsig modules out of dnsseca0fa12dreplace MessageSignature with Option for TSIG RRc68db48replace dyn MessageSigner with TSignerd0a235creplace dyn MessageVerifier with TSigVerifier📊 Changes
43 files changed (+742 additions, -824 deletions)
View changed files
📝
bin/benches/comparison_benches.rs(+2 -2)📝
bin/tests/integration/named_metrics_tests.rs(+16 -12)📝
bin/tests/integration/named_rustls_tests.rs(+2 -2)📝
bin/tests/integration/named_test_rsa_dnssec.rs(+1 -1)📝
bin/tests/integration/named_tests.rs(+17 -17)📝
bin/tests/integration/zone_handler_battery/dynamic_update.rs(+2 -4)📝
conformance/compatibility-tests/src/tsig_tests.rs(+17 -19)📝
conformance/compatibility-tests/src/zone_transfer.rs(+1 -1)📝
conformance/test-server/src/main.rs(+2 -2)📝
crates/net/src/client/mod.rs(+4 -14)📝
crates/net/src/client/tests.rs(+1 -1)📝
crates/net/src/tcp/tcp_client_stream.rs(+1 -1)📝
crates/net/src/tls.rs(+1 -1)📝
crates/net/src/udp/udp_client_stream.rs(+23 -11)📝
crates/net/src/xfer/dns_multiplexer.rs(+50 -42)📝
crates/proto/src/dnssec/mod.rs(+1 -5)📝
crates/proto/src/dnssec/rdata/mod.rs(+0 -123)📝
crates/proto/src/op/message.rs(+51 -122)📝
crates/proto/src/op/mod.rs(+1 -4)📝
crates/proto/src/op/update_message.rs(+4 -4)...and 23 more files
📄 Description
Follow-up from https://github.com/hickory-dns/hickory-dns/pull/3437
Now that
SIG(0)message authentication is removed we don't need theMessageSignatureenum, theMessageVerifierclosure type, or theMessageSigner/ResponseSignertraits.The one catch replacing the above types for their
TSIG-specific equivalents is that the indirection types were previously used both to abstract over a choice ofSIG(0)/TSIG, and to avoid having to change type signatures based on__dnssecbeing enabled or not. General code/traits could refer to the indirection types without needing to consider the__dnssecfeature, and concrete implementations could be gated behind it.For a similar end-state with less indirection this branch instead makes more of the general TSIG types available, but gates the parts that specifically require
__dnssec(e.g. MAC generation/verification), or that are only used from__dnssecgated areas of pre-existing code. This feels appropriate to me since TSIG is itself unrelated to DNSSEC, and so not a good fit forhickory-proto's top-leveldnssecmodule.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.