Package: bind9utils Version: 1:9.9.5.dfsg-9+deb8u8 Severity: normal Dear Maintainer,
I am trying to use dnssec-keygen to generate successor keys for a KSK rollover on my DNSSEC signed zone. When using dnssec-keygen with the -S operator, specifying the current KSK, the successor KSK is generated as a 'stub' file. This file contains only metadata, no key content, and is given the key ID 00000. After testing, I have determined that this occurs when attempting to rollover ECDSAP384SHA384 and ECDSAP256SHA256 keys. RSA key rollovers work as expected. Attached is terminal output of my testing to replicate the bug: a) Generate ECDSAP384SHA384 KSK & ZSK b) Amend timing data of KSK c) Attempt to generate successor key - fails - invalid stub keyfile generated Repeat the above with an RSA KSK & ZSK - works OK, valid key generated. Repeat the above with an ECDSAP256SHA256 KSK & ZSK - fails. Begin terminal output: ---------------------- root@rpi:/var/lib/bind/zones# cd internal/ root@rpi:/var/lib/bind/zones/internal# mkdir example.com/ root@rpi:/var/lib/bind/zones/internal# cd example.com/ root@rpi:/var/lib/bind/zones/internal/example.com# ls root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-keygen -a ECDSAP384SHA384 -3 -n ZONE -c IN -r /dev/urandom -P now -A now example.com Generating key pair. Kexample.com.+014+15094 root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-keygen -a ECDSAP384SHA384 -3 -n ZONE -c IN -r /dev/urandom -P now -A now -f KSK example.com Generating key pair. Kexample.com.+014+61808 root@rpi:/var/lib/bind/zones/internal/example.com# ls Kexample.com.+014+15094.key Kexample.com.+014+61808.key Kexample.com.+014+15094.private Kexample.com.+014+61808.private root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-settime -I 20170110 -D 20170110 Kexample.com.+014+61808 ./Kexample.com.+014+61808.key ./Kexample.com.+014+61808.private root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-keygen -S Kexample.com.+014+61808 -i 2d Generating key pair. Kexample.com.+014+00000 root@rpi:/var/lib/bind/zones/internal/example.com# ls Kexample.com.+014+00000.key Kexample.com.+014+61808.key Kexample.com.+014+15094.key Kexample.com.+014+61808.private Kexample.com.+014+15094.private root@rpi:/var/lib/bind/zones/internal/example.com# rm * root@rpi:/var/lib/bind/zones/internal/example.com# ls root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-keygen -a RSASHA256 -b 2048 -f KSK example.com Generating key pair...+++..............................................................................................................................................................+++ Kexample.com.+008+60019 root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-keygen -a RSASHA256 -b 1024 example.com Generating key pair..........++++++ ......................................................++++++ Kexample.com.+008+34614 root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-settime -I 20170110 -D 20170110 Kexample.com.+008+60019 ./Kexample.com.+008+60019.key ./Kexample.com.+008+60019.private root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-keygen -S Kexample.com.+008+60019 -i 2d Generating key pair......................................................+++ ...........................+++ Kexample.com.+008+00439 root@rpi:/var/lib/bind/zones/internal/example.com# rm * root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-keygen -a ECDSAP256SHA256 -f KSK example.com Generating key pair. Kexample.com.+013+35490 root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-keygen -a ECDSAP256SHA256 example.com Generating key pair. Kexample.com.+013+41709 root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-settime -I 20170110 -D 20170110 Kexample.com.+013+35490 ./Kexample.com.+013+35490.key ./Kexample.com.+013+35490.private root@rpi:/var/lib/bind/zones/internal/example.com# dnssec-keygen -S Kexample.com.+013+35490 -i 2d Generating key pair. Kexample.com.+013+00000 ------------------- End terminal output Sample output of 'stub' keyfile: ; This is a key-signing key, keyid 0, for example.com. ; Created: 20170107010646 (Sat Jan 7 01:06:46 2017) ; Publish: 20170108000000 (Sun Jan 8 00:00:00 2017) ; Activate: 20170110000000 (Tue Jan 10 00:00:00 2017) example.com. IN DNSKEY 49409 3 13 -- System Information: Distributor ID: Raspbian Description: Raspbian GNU/Linux 8.0 (jessie) Release: 8.0 Codename: jessie Architecture: armv7l Kernel: Linux 4.4.26-v7+ (SMP w/4 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages bind9utils depends on: ii libbind9-90 1:9.9.5.dfsg-9+deb8u8 ii libc6 2.19-18+deb8u6 ii libcap2 1:2.24-8 ii libcomerr2 1.42.12-2 ii libdns100 1:9.9.5.dfsg-9+deb8u8 ii libgssapi-krb5-2 1.12.1+dfsg-19+deb8u2 ii libisc95 1:9.9.5.dfsg-9+deb8u8 ii libisccc90 1:9.9.5.dfsg-9+deb8u8 ii libisccfg90 1:9.9.5.dfsg-9+deb8u8 ii libk5crypto3 1.12.1+dfsg-19+deb8u2 ii libkrb5-3 1.12.1+dfsg-19+deb8u2 ii libpython2.7-stdlib [python-argparse] 2.7.9-2+deb8u1 ii libssl1.0.0 1.0.1t-1+deb8u5 ii libxml2 2.9.1+dfsg1-5+deb8u4 ii python 2.7.9-1 bind9utils recommends no packages. bind9utils suggests no packages. -- no debconf information