Moved to git://git.schlittermann.de/users/heiko/dnssec-info.git default tip
authorHeiko Schlittermann <hs@schlittermann.de>
Tue, 12 Sep 2017 23:37:03 +0200
changeset 3 a08198ba5150
parent 2 52d1ff194af0
Moved to git://git.schlittermann.de/users/heiko/dnssec-info.git
Build.PL
README
bin/dnssec-info
lib/DNSSec.pm
t/01-dnssec.t
--- a/Build.PL	Tue Apr 07 14:14:51 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#!perl
-use strict;
-use warnings;
-use Module::Build;
-
-Module::Build->new(
-    dist_name => 'dnssec-info',
-    dist_abstract => 'tool to get dnssec information',
-    version_from => 'lib/DNSSec.pm',
-    module_name => 'DNSSec',
-    requires => {
-	'Net::DNS' => 0,
-	'Net::DNS::SEC' => 0,
-    },
-    test_requires => {
-	'Test::Exception' => 0,
-    },
-)->create_build_script;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README	Tue Sep 12 23:37:03 2017 +0200
@@ -0,0 +1,1 @@
+moved to git://git.schlittermann.de/users/heiko/dnssec-info
--- a/bin/dnssec-info	Tue Apr 07 14:14:51 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-#!/usr/bin/perl
-
-use v5.14;
-use strict;
-use warnings;
-use Pod::Usage;
-use Getopt::Long;
-use DNSSec qw(keyinfo);
-use List::Util qw(max);
-use if $ENV{DEBUG} => 'Smart::Comments';
-
-sub pretty {
-    my $hash = shift;
-    my @fields = do {
-	my @x;
-	while (@_) {
-	    push @x, [shift, shift];
-	}
-	@x;
-    };
-    my $maxl = max map { length $_->[0] } @fields;
-
-    my @pretty;
-    foreach my $f (@fields) {
-	my $sub = $f->[1];
-	push @pretty, sprintf '%*s: %s',
-	    $maxl, $f->[0], $hash->$sub,
-    }
-    return @pretty;
-}
-
-sub main {
-    my $domain;
-    my $server;
-    GetOptions(
-	's|server=s' => \$server,
-        'h|help' => sub { pod2usage(-exitval => 0) },
-        'm|man'  => sub {
-            pod2usage(
-                -exitval   => 0,
-                -verbose   => 2,
-                -noperldoc => system('perldoc -V >/dev/null'),
-              ),
-              ;
-        },
-    ) and $domain = shift @ARGV // pod2usage;
-    say $domain, "\n", '-' x length $domain;
-
-    # get the dnskeys directory from the public available information
-    my @ki = keyinfo {-server => $server }, $domain;
-#    use Data::Dumper;
-#    die Dumper \@ki;
-
-    foreach my $ki (@ki) {
-	say '** DNS Key';
-	say "\t", join "\n\t", pretty $ki->{key}, 
-		Algorithm => 'algorithm',
-		Flags => 'flags',
-		Protocol => 'protocol' ,
-		Key => 'key',
-		Keytag => 'keytag';
-	say '** DNS Key Digest';
-	say "\t", join "\n\t", pretty $ki->{digest},
-		Algorithm => 'algorithm',
-		Digest => 'digest',
-		'Digest Type' => 'digtype',
-		Keytag => 'keytag',
-    }
-
-}
-
-
-
-exit main @ARGV if not caller;
-
-__END__
-=head1 NAME
- 
- dnssec-info - get various informations about a dnssec domain
-
-=head1 SYNOPSIS
-
- dnssec-info [-s|--server <server>] <domain>
-
-=head1 DESCRIPTION
-
-B<dnssec-info> retrieves varios information about a dnssec domain.
-
-=head1 OPTIONS
-
-=over
-
-=item B<-h>|B<--help>
-=item B<-m>|B<--man>
-
-Helpful information.
-
-=item B<-s>|B<--server> I<server>
-
-Send the query to a specific DNS server. (default: depend on your local settings)
-
-
-=back
-
-=cut
--- a/lib/DNSSec.pm	Tue Apr 07 14:14:51 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-package DNSSec;
-use v5.14;
-use strict;
-use warnings;
-use Net::DNS::SEC::Keyset;
-use base 'Exporter';
-
-our @EXPORT_OK = qw(keyset ksk keyinfo);
-
-
-sub keyset {
-    my %arg = %{+shift} if ref $_[0] eq ref {};
-    my $domain = shift;
-
-    my $resolver = Net::DNS::Resolver->new(
-	$arg{-server} ? (nameservers => [$arg{-server}]) : ());
-    $resolver->dnssec(1);
-
-    my $keys = $resolver->query($domain => (DNSKEY => 'IN'))
-      or die $resolver->errorstring;
-
-    my $ks = Net::DNS::SEC::Keyset->new($keys)
-      or die $Net::DNS::SEC::Keyset::keyset_err;
-    return $ks;
-}
-
-sub ksk {
-    return grep { $_->flags & 0x1 } @_;
-}
-
-sub keyinfo {
-    my $ks = keyset @_;
-    my @keyinfo;
-    foreach my $k (ksk $ks->keys) {
-	my %keyinfo;
-	$keyinfo{key} = $k;
-	$keyinfo{digest} = Net::DNS::RR::DS->create($k, digtype => 'SHA-256');
-	push @keyinfo, \%keyinfo;
-    }
-    return @keyinfo;
-}
-
-1;
--- a/t/01-dnssec.t	Tue Apr 07 14:14:51 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use warnings;
-use Test::More;
-use Test::Exception;
-use Data::Dumper;
-
-my @ZONES = qw(. schlittermann.info schlittermann.de);
-
-use_ok DNSSec => qw(keyset ksk keyinfo);
-
-# first the K.O. tests
-dies_ok { dnskeys('this.domain.does.not.exist.never.ever') } 'dies on non existent domain';
-
-subtest $_ => sub {
-    # now the real ones
-    my $keyset = keyset($_);
-    cmp_ok scalar($keyset->keys), '>=', 2 => 'got some keys';
-    my @ksk = ksk($keyset->keys);
-    cmp_ok scalar(@ksk), '>=', 1 => 'got at least one KSK';
-} foreach (@ZONES);
-
-
-done_testing;