Zonema...DNSSEC(3pm)

✨ NAME ✨

Zonemaster::Engine::Test::DNSSEC πŸ’– β€” the module that runs all the DNSSEC-flavored tests. (The page header calls it Zonema...DNSSEC(3pm), Perl docs love to abbreviate like it's a group chat nickname.)

Think of it as the friend in the group chat whose entire personality is "did you sign your zone tho" πŸ”


πŸŽ€ SYNOPSIS πŸŽ€

my @results = Zonemaster::Engine::Test::DNSSEC->all( $zone );

πŸ’… METHODS πŸ’…

all()

my @logentry_array = all( $zone );

Runs the default set of tests for this module β€” so like, somewhere between one and seventeen tests, depending on the zone you're checking. Not every zone needs the full lineup, bestie.

The tea β˜•: if DNSSEC07 finds no DNSKEY and no DS RRs, literally nothing else gets run. And if DNSSEC07 does find a DNSKEY RR, then DNSSEC06 gets run. That's the whole vibe check.

  • Takes a Zonemaster::Engine::Zone object.
  • Returns a list of Zonemaster::Engine::Logger::Entry objects.

metadata()

my $hash_ref = metadata();

Gives you back a reference to a hash. The keys are the names of all the Test Cases in the module, and each value points to an array holding every message tag that Test Case can use in its log entries. It's giving "table of contents but make it data" πŸ’–

tag_descriptions()

my $hash_ref = tag_descriptions();

This one is used by the built-in translation system. 🌈

Returns a reference to a hash where the keys are the message tags and the values are strings (message IDs). iykyk.

version()

my $version_string = version();

Returns a string with the version of the current module. Short, sweet, iconic. ⭐


πŸ”§ INTERNAL METHODS πŸ”§

These are the backstage crew. Don't text them directly unless you know what you're doing, bestie.

_emit_log()

my $log_entry = _emit_log( $message_tag_string, $hash_ref );

Adds a message to the logger for this module. For the full deets, go look at "add($tag, $argref, $module, $testcase)" in Zonemaster::Engine::Logger::Entry. πŸ‘€

  • Takes a string (the message tag) and a reference to a hash (the arguments).
  • Returns a Zonemaster::Engine::Logger::Entry object.

_ip_disabled_message()

my $bool = _ip_disabled_message( $logentry_array_ref, $ns, @query_type_array );

Checks whether the IP version of a given name server is even allowed to be queried. If it's not allowed, it drops a logging message and returns true. If it is allowed, it returns false. Simple as. ✨

  • Takes a reference to an array of Zonemaster::Engine::Logger::Entry objects, a Zonemaster::Engine::Nameserver object, and an array of strings (the query type).
  • Returns a boolean.

🧚 TESTS 🧚

Ok so this is the main character section. Seventeen test cases, each one vibing on its own. Every single one of them:

  • Takes a Zonemaster::Engine::Zone object.
  • Returns a list of Zonemaster::Engine::Logger::Entry objects.

And yeah β€” there is no dnssec12(). It's simply not here. We don't talk about it. πŸ’€ (The roster jumps straight from dnssec11() to dnssec13(), no cap.)

dnssec01()

my @logentry_array = dnssec01( $zone );

Runs the DNSSEC01 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec01.md

dnssec02()

my @logentry_array = dnssec02( $zone );

Runs the DNSSEC02 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec02.md

dnssec03()

my @logentry_array = dnssec03( $zone );

Runs the DNSSEC03 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec03.md

dnssec04()

my @logentry_array = dnssec04( $zone );

Runs the DNSSEC04 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec04.md

dnssec05()

my @logentry_array = dnssec05( $zone );

Runs the DNSSEC05 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec05.md

dnssec06()

my @logentry_array = dnssec06( $zone );

Runs the DNSSEC06 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec06.md

dnssec07()

my @logentry_array = dnssec07( $zone );

Runs the DNSSEC07 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec07.md

dnssec08()

my @logentry_array = dnssec08( $zone );

Runs the DNSSEC08 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec08.md

dnssec09()

my @logentry_array = dnssec09( $zone );

Runs the DNSSEC09 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec09.md

dnssec10()

my @logentry_array = dnssec10( $zone );

Runs the DNSSEC10 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec10.md

dnssec11()

my @logentry_array = dnssec11( $zone );

Runs the DNSSEC11 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec11.md

dnssec13()

my @logentry_array = dnssec13( $zone );

Runs the DNSSEC13 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec13.md

dnssec14()

my @logentry_array = dnssec14( $zone );

Runs the DNSSEC14 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec14.md

dnssec15()

my @logentry_array = dnssec15( $zone );

Runs the DNSSEC15 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec15.md

dnssec16()

my @logentry_array = dnssec16( $zone );

Runs the DNSSEC16 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec16.md

dnssec17()

my @logentry_array = dnssec17( $zone );

Runs the DNSSEC17 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec17.md

dnssec18()

my @logentry_array = dnssec18( $zone );

Runs the DNSSEC18 Test Case: https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/DNSSEC-TP/dnssec18.md


Reminder bestie: every one of these takes a Zonemaster::Engine::Zone object and hands you back a list of Zonemaster::Engine::Logger::Entry objects. Don't forget it. 🫢

🌸 SEE ALSO 🌸

Hmm, the original page doesn't ship a SEE ALSO section... so there's nothing to reference down here. That's it, that's the list. πŸ€·πŸ’–


Later, bestie! πŸ’• This page is from the Zonemaster::Engine::Test::DNSSEC module docs, as rendered for Perl v5.40.1 and dated 2026-03-21. Go forth and validate those signatures. Slay. πŸ‘‘βœ¨

πŸ“¦ where this page comes from