- Program: Authoritative
- Issue type: Bug report
Short description
When I have DNSSEC keys for an algorithm not supported in my current build, "almost nothing works".
Environment
- Operating system: Debian 13
- Software version: master (114b76c)
- Software source: git
Steps to reproduce
- import/generate a dnssec key with some algorithm (I used 253, probably from my
sillysigners branch)
- build a pdnsutil/pdns_server without the algo (it might be easier to add an MLDSA key and then build without, than the steps I did by accident)
- try
pdnsutil zone show, pdnsutil zone edit, or dig +dnssec against pdns_server for your zone
Expected behaviour
Some graceful degradation.
Actual behaviour
$ EDITOR=true ppdnsutil --config-dir=. --config-name=lmdb zone edit example.com
Error: Request to create key object for unknown algorithm number 253
$ ppdnsutil --config-dir=. --config-name=lmdb zone show example.comThis is a Master zone
Last SOA serial number we notified: 2025042701 == 2025042701 (serial in the database)
Error: Request to create key object for unknown algorithm number 253
and for dig +dnssec against pdns_server:
Aug 27 20:47:56 Exception building answer packet for example.com/SOA (Request to create key object for unknown algorithm number 253) sending out servfail
Other information
The pdnsutil failure is because dk.isSecuredZone calls getKeys (which seems wasteful but, due to caching, is fine in pdns_server), which attempts to construct all keys for the zone. Making dk.isSecuredZone more robust is easy, I bet, but I also bet we'll find even more failure modes if we dig.
I did not investigate the failure in pdns_server at all.
Short description
When I have DNSSEC keys for an algorithm not supported in my current build, "almost nothing works".
Environment
Steps to reproduce
sillysignersbranch)pdnsutil zone show,pdnsutil zone edit, ordig +dnssecagainstpdns_serverfor your zoneExpected behaviour
Some graceful degradation.
Actual behaviour
and for
dig +dnssecagainstpdns_server:Other information
The pdnsutil failure is because
dk.isSecuredZonecallsgetKeys(which seems wasteful but, due to caching, is fine inpdns_server), which attempts to construct all keys for the zone. Makingdk.isSecuredZonemore robust is easy, I bet, but I also bet we'll find even more failure modes if we dig.I did not investigate the failure in
pdns_serverat all.