From 51e2123c83ecafb4fa4e55815010721d2b73d77d Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Sun, 4 May 2025 16:21:38 +0200 Subject: [PATCH] TSIG payload: use canonical (lowercase) name format --- pdns/dnssecinfra.cc | 2 +- pdns/test-tsig.cc | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pdns/dnssecinfra.cc b/pdns/dnssecinfra.cc index e6f063d3a2..53309fbc40 100644 --- a/pdns/dnssecinfra.cc +++ b/pdns/dnssecinfra.cc @@ -782,7 +782,7 @@ static string makeTSIGPayload(const string& previous, const char* packetBegin, s DNSPacketWriter dw(signVect, DNSName(), 0); auto pos=signVect.size(); if(!timersonly) { - dw.xfrName(tsigKeyName, false); + dw.xfrName(tsigKeyName.makeLowerCase(), false); dw.xfr16BitInt(QClass::ANY); // class dw.xfr32BitInt(0); // TTL dw.xfrName(trc.d_algoName.makeLowerCase(), false); diff --git a/pdns/test-tsig.cc b/pdns/test-tsig.cc index 55e92936d0..38aa7cc7d1 100644 --- a/pdns/test-tsig.cc +++ b/pdns/test-tsig.cc @@ -141,6 +141,17 @@ BOOST_AUTO_TEST_CASE(test_TSIG_different_case_algo) { checkTSIG(tsigName, tsigAlgo.makeLowerCase(), tsigSecret, packet); } +BOOST_AUTO_TEST_CASE(test_TSIG_different_case_name) { + DNSName tsigName("tsig.Name"); + DNSName tsigAlgo("HMAC-MD5.SIG-ALG.REG.INT"); + DNSName qname("test.valid.tsig"); + string tsigSecret("verysecret"); + + vector packet = generateTSIGQuery(qname, tsigName, tsigAlgo, tsigSecret); + + checkTSIG(tsigName.makeLowerCase(), tsigAlgo.makeLowerCase(), tsigSecret, packet); +} + BOOST_AUTO_TEST_CASE(test_TSIG_different_name_same_algo) { DNSName tsigName("tsig.name"); DNSName tsigAlgo("HMAC-MD5.SIG-ALG.REG.INT"); -- 2.47.2