diff options
Diffstat (limited to 'contrib/DNS-LDNS/t/dnssec_zone.t')
-rw-r--r-- | contrib/DNS-LDNS/t/dnssec_zone.t | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/contrib/DNS-LDNS/t/dnssec_zone.t b/contrib/DNS-LDNS/t/dnssec_zone.t new file mode 100644 index 0000000..48115aa --- /dev/null +++ b/contrib/DNS-LDNS/t/dnssec_zone.t @@ -0,0 +1,35 @@ +use Test::More tests => 7; + +use FindBin qw/$Bin/; + +use DNS::LDNS ':all'; + +BEGIN { use_ok('DNS::LDNS') }; + +# Create a new dnssec zone +my $z = new DNS::LDNS::DNSSecZone; +isa_ok($z, 'DNS::LDNS::DNSSecZone', 'Create an empty zone'); + +# Read a zone from file and create a dnssec zone from it +my $z2 = new DNS::LDNS::Zone( + filename => "$Bin/testdata/myzone.org"); + +$z->create_from_zone($z2); + +my $rrset = $z->find_rrset( + new DNS::LDNS::RData(LDNS_RDF_TYPE_DNAME, 'ns1.myzone.org.'), + LDNS_RR_TYPE_A); + +is($rrset->rrs->rr->type, LDNS_RR_TYPE_A, 'Found an A record'); +is($rrset->rrs->rr->dname, 'ns1.myzone.org.', 'Dname is ns1.myzone.org.'); + +is($z->add_empty_nonterminals, LDNS_STATUS_OK, 'Add empty non-terminals'); + +my $klist = new DNS::LDNS::KeyList; +$klist->push(new DNS::LDNS::Key(filename => "$Bin/testdata/key.private")); +$klist->key(0)->set_pubkey_owner( + new DNS::LDNS::RData(LDNS_RDF_TYPE_DNAME, 'myzone.org')); + +is($z->sign($klist, LDNS_SIGNATURE_REMOVE_ADD_NEW, 0), LDNS_STATUS_OK, 'Sign'); +is($z->sign_nsec3($klist, LDNS_SIGNATURE_REMOVE_ADD_NEW, 1, 0, 10, 'ABBA', 0), + LDNS_STATUS_OK, 'Sign nsec3'); |