Your message dated Sun, 25 Nov 2012 16:22:04 +0100
with message-id <[email protected]>
and subject line Re: Bug#666700: Net::DNS::SEC::Tools::keyrec.pm fails to 
locate kskrev keypaths
has caused the Debian Bug report #666700,
regarding Net::DNS::SEC::Tools::keyrec.pm fails to locate kskrev keypaths
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
666700: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666700
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: dnssec-tools
Version: 1.7-3
Severity: important
File: /usr/share/perl5/Net/DNS/SEC/Tools/keyrec.pm
Tags: patch

When RFC5011 KSK revocation is enabled (the default), at some point after
KSK keys have been revoked, zonesigner fails with the following error:

    dnssec-signzone: fatal: revoked KSK is not self signed

The problem is that zonesigner is not passing a -k argument to dnssec-signzone
with the revoked key. This appears to be because keyrec_keypaths() (from
Net::DNS::SEC::Tools::keyrec) is not finding the kskrev keypaths, which have
an additional level of indirection in their keyrec signing sets.

The attached patch attempts to correct this problem.


-- System Information:
Debian Release: 6.0.4
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-openvz-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dnssec-tools depends on:
ii  bind9utils       1:9.7.3.dfsg-1~squeeze4 Utilities for BIND
ii  libnet-dns-perl  0.66-2                  Perform DNS queries from a Perl sc
ii  libnet-dns-sec-p 0.16-1                  DNSSEC extension to NET::DNS
ii  libtimedate-perl 1.2000-1                collection of modules to manipulat
ii  perl             5.10.1-17squeeze3       Larry Wall's Practical Extraction 

Versions of packages dnssec-tools recommends:
ii  bind9            1:9.7.3.dfsg-1~squeeze4 Internet Domain Name Server

dnssec-tools suggests no packages.

-- Configuration Files:
/etc/dnssec-tools/dnssec-tools.conf changed [not included]

-- no debconf information
--- /usr/share/perl5/Net/DNS/SEC/Tools/keyrec.pm        2010-06-25 
08:42:00.000000000 -0700
+++ keyrec.pm   2012-03-31 18:09:37.000000000 -0700
@@ -704,15 +704,50 @@
        foreach my $kn (split /[\s,]/, $keylist)
        {
                #
-               # Verify that this key exists and is the right type.
+               # Verify that this key exists.
                #
                next if(!defined($keyrecs{$kn}));
-               next if($keyrecs{$kn}{'keyrec_type'} ne $krt);
 
                #
-               # Push the key's path onto the path list.
+               # Maybe follow another level of indirection for kskrev sets.
                #
-               push @paths, $keyrecs{$kn}{'keypath'};
+               if ($krt eq "kskrev" && $keyrecs{$kn}{'set_type'} eq $krt) {
+                       my $sset = $kn;
+
+                       #
+                       # Get and verify the key list.
+                       #
+                       next if(!defined($keyrecs{$sset}{'keys'}));
+                       my $keylist = $keyrecs{$sset}{'keys'};
+
+                       #
+                       # Get the key's paths and add 'em to the path array.
+                       #
+                       foreach my $kn (split /[\s,]/, $keylist)
+                       {
+                               #
+                               # Verify that this key exists and is the right 
type.
+                               #
+                               next if(!defined($keyrecs{$kn}));
+                               next if($keyrecs{$kn}{'keyrec_type'} ne $krt);
+
+                               #
+                               # Push the key's path onto the path list.
+                               #
+                               push @paths, $keyrecs{$kn}{'keypath'};
+                       }
+               }
+               else {
+                       #
+                       # Verify that this key is the right type.
+                       #
+                       next if($keyrecs{$kn}{'keyrec_type'} ne $krt);
+
+                       #
+                       # Push the key's path onto the path list.
+                       #
+                       push @paths, $keyrecs{$kn}{'keypath'};
+               }
        }
 
        #

--- End Message ---
--- Begin Message ---
On Sun, Apr 01, 2012 at 05:41:41PM -0700, Rob Leslie wrote:
> I wasn’t able to test it thoroughly on my production system, but in my 
> cursory review I didn’t see anything to suggest the keyrec_keypaths() routine 
> from 1.12.1 is any smarter about the doubly-indirected kskrev keys.

I can confirm this being fixed at least in 1.13.1. (svn blame shows
your patch, Bob, dated 2007-11-01[1]. I have no clue how that works.)

Therefore I take the liberty to close this bug.

Sebastian


References
==========
1: 
http://dnssec-tools.svn.sourceforge.net/viewvc/dnssec-tools/trunk/dnssec-tools/tools/modules/keyrec.pm?r1=3695&r2=3785&pathrev=3785

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply via email to