Sync usage with man page.
[netbsd-mini2440.git] / external / bsd / bind / dist / contrib / zkt / CHANGELOG
blob423797f990a97accfda908f78622d94fa0e009ad
1 zkt 0.99c -- 1. Aug 2009
3 * misc  dnssec-signer command line option vars changed to storage
4         class static.
6 * port  setenv() replaced by putenv() in misc.c
8 * misc  Install binaries in prefix/bin instead of $HOME/bin.
9         Fixing some spelling errors in dnssec-signzone.8 and
10         dnssec-zkt.8.
11         Thanks to Mans Nilsson.
13 * port  timegm() check added to configure.ac
15 * misc  configure.ac, Makefile.in, and doc is now part of distribution
17 * bug   off by one error fixed in splitpath()
19 * misc  is_dotfile() renamed to is_dotfilename() (misc.c)
21 * misc  inc_soaserial() sourced out to soaserial.c
23 * misc  reload() functions sourced out to nscomm.c
25 * bug   Introducing parameter "KeyAlgorithm" for both ZSK and
26         KSK keys instead of separate KSK and ZSK algorithms.
27         New functions dki_algo() and dki_findalgo().
29 * bug   Redirect stderr message (additionally to stdout) of
30         dnssec-signzone command to pipe.
31         Pick up last line of output for logging.
33 * misc  "Sig_GenerateDS" is no longer a hidden parameter.
35 * misc  "make clean" now remove the binary files
36         New target "distclean" added to Makefile
38 * bug   Wrong typecast in zconf.c parsing CONF_TIMEINT (Thanks to Frederick
39         Soderblum and Peter Norin for the patch)
40         Changed all TIMEINT parameter values to long.
42 * bug   If someone changes the zone.db file in dynamic mode, this will be treated
43         the same way as an initial setup, so the zone.db file will be used as new
44         input file (Thanks to Shane Wegner for this patch)
46 * bug   Option nsec3_param added to dnssec-signzone command for dynamic zones.
48 * func  New option "NamedChrootDir" added to dnssec.conf to specify the
49         directory of a chrooted named. Without such an option
50         "dnssec-signer -N named.conf" couldn't find the zone file directory.
52 * misc  Default ZSK lifetime set to 12 weeks instead of 3 months (30days) to
53         suppress the warning message about ZSK keysize of 512 bits.
55 zkt 0.98 -- 28. Dec 2008
57 * misc  Target "install-man" added to Makefile
58         man files moved to sub directory "man"
60 * func  If a BIND version greater equal 9.6.0 is used, option -d doesn't
61         initiate a resigning of a zone. It's just for key rollover.
63 * func  New pseudo algorithms for NSEC3 DNSKEYS added.
64         Support of NSEC3 hashing if a BIND version greater equal 9.6.0
65         is used. New parameter "SaltBits" added to the config file to
66         set the salt length in bits (default is 24 which means 6 hex nibbles). 
67         The number of hash iterations is set to the default value of
68         dnssec-signzone which depends on key size.
70 * misc  Renaming of all example zone directories so that the directory
71         name does not end with a dot (Necessary for installing the
72         source tree in an MS-Windows environment).
73         str_tolowerdup() renamed to domain_canonicdup() and code added
74         to append a dot to the domain name if it's not already there.
76 * misc  Add 'sec' (second) qualifier to debug output in kskrollover().
78 * bug   Remove a trailing '/' at the -D argument.
80 * misc  Configure script now uses the BIND_UTIL_PATH out of config_zkt.h
81         if the BIND dnssec-signzone command is not found
83 * bug   A zone with only a standby key signing key (which means w/o an
84         active ksk) aborts the dnssec-signer command.
85         Fixed by Shane Kerr.
87 * func  Changed inc_serial() so that the SOA record parser accepts a label
88         other than '@' and an optional ttl value before the class and SOA
89         RR identifier (Both are case insensitive). Thanks to Shane Kerr 
90         for the suggestion.
92 * bug   Change of global configured key liftetime during a zone signing
93         key rollover results in unnecessary additional pre-published
94         zone signing keys (Thanks to Frank Behrens for the patch)
96 * misc  Sig_Random config file parameter defaults now to false
98 * bug   The man page refers the wrong licence (GPL instead of BSD)
100 zkt 0.97 -- 5. Aug 2008
102 * bug   LG_* logging level wasn't mapped to syslog level in lg_mesg().
103         gettock() in ncparse.c did not recognize C single line comments "//"
104         (Thanks to Frank Behrens for finding this out)
106 * misc  dist_and_reload () now calls the "Distribute_Cmd" twice:
107         First with argument "distribute" for signed zone file distribution,
108         second with argument "reload" to initiate a reload.
109         Again see example/flat/dist.sh for an example script.
111 * bug   full KSK rollover will (mostly) also work for dynamic zones
112         This is a hack and requires further investigation. Currently
113         it will not work if someone is using non standard zone file
114         names.
116 * misc  default ZSK lifetime set to 3 month
118 * misc  get_mtime() renamed to file_mtime()
120 * func  is_exec_ok() added and called in dist_and_reload ()
122 * func  New parameter "Distribute_Cmd" added for specifing a user
123         defined distribution (and reload) command (See example/flat/dist.sh).
125 * misc  Changed wording to be a bit more consistent to
126         draft-gudmundsson-life-of-dnskey-00.txt
127         - State of published key will be print as "pub" instead of "pre"
128           by dnssec-zkt.
129         - Option --pre-publish of dnssec-zkt changed to --published.
130         - Changed wording in all comments and log message from "pre-publish"
131           to "published".
133 * func  Highly experimental code to do a full automatic ksk rollover
134         in hierachical mode.
135         ksk_rollover() added in rollover.c; parameter change for ksk_status()
137 * misc  Changed name of "dnssec-soaserial" to "zkt-soaserial"
139 * bug   Fixed verbose logging error if -N or -D option was used
141 * func  Some LG_INFO messages added about key status change
143 * func  Remove of function to register a new ksk (zktr.[ch])
145 * misc  Changed licence from GNU GPLv2 to BSD licence
147 * bug   Fixed bug in logging of ZSK rollover
149 * misc  Changed tar file to zipped one and archive the files with
150         toplevel directory
152 * bug   Fixed use of uninitialized vars in zconf.c (line)
154 * port  Preparation for use of autoconf
155         - config.h renamed to config_zkt.h and change of include directives
156         - conditional include of config.h 
157         - ./configure script is able to determine BIND utility path
158           (BIND_UTIL_PATH) and version (BIND_VERSION)
159         - compile time options are settable via configure script (--enable-xxx)
160         - For now, the configure script is not able to set the install dir.
162 * bug   ksk rollover phase2 did not trigger resigning of parent
163         (the parent file was copied to the parent directory only
164         after child zone resigning)
166 * bug   fixed bad notice message in zskstatus ()
168 * func  dnssec-zkt -Z print out syslog facility & level with
169         upper case letter and without quotation marks
171 * func  Syslog facility DAEMON added
173 zkt 0.96 -- 19. June 2008
175 * func  Config file option "SIG_Parameter" added.
177 * func  Function verbmesg() added and used for verbose logging
178         to stdout and/or to syslog resp. file.
179         Config file parameter VerboseLog added to config file.
181 * bug   Option -O wasn't recognized by dnssec-signer
183 * func  Better support of initial setup of dynamic signed
184         zones (just create an empty "zone.db.dsigned" file
185         and run dnssec-signer with option -d).
187 * func  Improved error logging; incr_soa() errors are written
188         as clear text message instead of error number
190 * func  elog_mesg() function replaced by a more general
191         logging mechanism.
192         ErrorLog config parameter replaced by LogFile,
193         LogLevel and SyslogFacility, SyslogLevel parameter
195 * func  New function filesize() added
197 * func  dki_prt_trustedkey print out old key id if key
198         is revoked 
200 * func  dki_new() writes gentime (GMT) and proposed key
201         lifetime (days) as comment into the *.key file
203 * bug   Doing some housekeeping
205 zkt 0.95 -- 19. April 2008
207 * misc  This is not a public released version of zkt.
209 * func  All config file option are now settable via
210         commandline option -O (--option or --config-option)
212 * misc  Function fatal() now has an exit code of 127.
213         This is necessary because values from 1 to 64 are
214         reflecting the number of errors occured.
216 * func  Errorlog functionality added
217         All dnssec-signer errors will be logged in the file
218         specified by the Errorlog config file parameter or
219         specified by the command line option -L (--errorlog).
220         If a directory is given, then the logging will occur
221         in a file within this directory which is named
222         like "zkt-<current-date>.log".
223         The dnssec-signer command has an exit code of 0 if
224         no error occured, an exit code of 127 on fatal errors,
225         an exit code from 1 to 63 reflecting the number of errors
226         occured, or an exit code of 64 if more than 63 errors
227         occured.
229 * func  dnssec-signer: Introducing long options
231 * bug   New skript added to example/views directory to
232         read in the right config file
234 * func  New option -f (--lifetime) and -F (--setlifetime)
235         added to dnssec-zkt.
237 * func  New option -e (--expire) added to dnssec-zkt.
238         (Seems to be that the dnssec-zkt command is a little
239         bit overloaded with options.)
241 * func  dki.c and zkt.c supports storage of key lifetime,
242         generation time and expiration time as a comment in the
243         .key file.  With this, it's possible to change the default
244         lifetime without any impact on already used keys.
246 zkt 0.94 -- 6. Dec 2007
248 * bug   Case mismatch of zone name and key file name prevent
249         dki_read() from reading the key.
250         Thanks to Alan Clegg for finding this out.
251         Added some additional error processing and convert
252         zone name to lower case.
254 * misc  Builtin default for KSK_randfile changed
255         from NULL to "/dev/urandom".
257 * bug   dnssec-signer has to use private keys for signing
258         even if the revoke bit is set.
259         To achieve this the file pattern K*.private is added
260         to the dnssec-signzone run.
262 * bug   Uninitialized variable "len" in sign_zone().
264 * func  Default config file is settable via environment
265         variable ZKT_CONFFILE
267 * func  Support of views added
268         Link dnssec-zkt to dnssec-zkt-<view> and
269         dnssec-signer to dnssec-signer-<view>.
270         Option -V and --view added to dnssec-zkt.
271         Option -V added to dnssec-signer.
272         View support added to parse_namedconf().
274 zkt 0.93 -- 1. Nov 2007
276 * func  The ksk registration mechanism is disabled by
277         default (see REG_URL in config.h).
279 * func  Basic support for revoke flag added (RFC5011).
280         Semantic of option -R of dnssec-zkt changed.
282 * func  Undocumented option -S changed to lower case.
283         Pre-pulished KSK will be shown as "standby" key.
284         New Option -S (standby) for pre-publish KSK.
286 * func  New command dnssec-soaserial added.
288 * bug   dnssec-signer do not print the incremented serial
289         number anymore.
290         time2str() fixed bug in time format (HAS_STRFTIME=0).
292 * port  New build dependencies "solaris", "macos" and "help"
293         added to Makefile.
295 zkt 0.92 -- 1. Oct 2007
297 * func  Parameter "Serialformat" in dnssec.conf added .
298         Now it is possible to use the unixtime format for
299         the SOA serial number. If you use BIND 9.4 or
300         greater in conjunction with this, than there is no
301         need for the special SOA serial formating in
302         the zonefile. (Thanks to Jakob Schlyter for the
303         -N option of dnssec-signzone and the suggestion to
304         add the unixtime support to zkt)
305         
306 * func  Option --ksk-roll-stat added.
308 * port  Added macro HAS_GETOPT_LONG to support OS with
309         lack of getopt_long() (e.g. solaris).
310         Options -[01239] added.
312 * misc  Unused macro HAS_ULONG removed from config.h.
313         Deklaration of unsigned types moved from dki.h to
314         config.h (so it will be available in _all_ source
315         files). Thanks to Mans Nilsson.
316         Unused macro isblank() (ncparse.c) removed.
318 * bug   In dosigning(): freeze the dynamic zone _before_ copying
319         the zone file.
321 zkt 0.91 -- 1. Apr 2007
323 * doc   --ksk-rollover option added to usage().
325 * func  some experimental code for dynamic zones added.
326         new functions added: copyzonefile(), dyn_update_freeze().
327         New option "-d" added. 
329 zkt 0.90 -- 6. Dec 2006
331 * func  CHECK_RESIGN interval added to config.h.
332         This is the dnssec-signer calling interval (at least 1 day or 86400 sec).
334 * func  new function dki_destroy() added; semantic of dk_remove()
335         changed to rename the key files instead of physical deletion.
337 * doc   Setup of new example directory (flat and hierarchical).
339 * doc   dnssec-zkt man page updated.
340         Added some comments in misc.c
342 * misc  function strtaint() renamed to str_untaint(),
343         dki_keycmp() renamed to dki_tagcmp().
345 * func  New parameter key_ttl added to dnssec.conf.
346         New func dki_prt_dnskeyttl () added.
347         Now dnskey.db is written with key_ttl value.
349 * func  dnssec-signer: In hierarchical mode sign_zone() copies the
350         parent-file (if such a file exist) instead of the
351         keyset-file to the parent directory.
353 * func  dnssec-zkt: Option --ksk-roll-phase[123] and function
354         ksk_rollover() added.
356 * misc  zconf: default values for sigvalidity, resign_int etc. changed,
357         new dnssec.conf example file created.
359 * func  dnssec-zkt: Long option support added.
361 zkt 0.83 -- 11. Sep 2006
363 * bug   dosigning(): Fixed bug in the bug fixing of printing undefined
364         serial number if incr_serial() failed. (Thanks to Randy McCasskill).
366 zkt 0.82 -- 8. Sep 2006
368 * bug   Use option -e for dnssec-keygen calls in dki_new(), because
369         an RSA exponent of 3 is vulnerable.
371 * bug   dosigning(): Fixed bug in printing undefined serial
372         number if incr_serial() failed.
374         an RSA exponent of 3 is vulnerable.
376 * bug   dosigning(): Fixed bug in printing undefined serial
377         number if incr_serial() failed.
379 zkt 0.81 -- 13. July 2006
381 * bug   The function ceatekey() won't work with USE_TREE.
382         Size of MAX_DNAME increased.
384 zkt 0.8 -- 09. July 2006
386 * func  Now a hierarchical directory structure with subdomains stored in
387         subfolders of the parent domain are allowed. Added copyfile(),
388         cmpfile() and new_keysetfiles() for that.
390 * func  Config parameter added to choose if the domain name is
391         right or left justified listed by dnssec-zkt (printkeyinfo).
393 * func  New class of key added ("sep"). A SEP key is a (public) key file
394         without the private counterpart. So we could use the key solely
395         as an secure entry point. (dki.h, dki_read).
397 zkt 0.70 -- 15. Sep 2005
399 * func  Experimental code added to use a binary search tree instead of a
400         single linked list. This is mainly for performance improvement for large
401         sites. If you don't want to use it, set USE_TREE in config.h to zero.
402         In the first step only dnssec-zkt use the new data structure.
403         The tree is build over the domain names and each node is the starting point
404         of a linked list of keys.
405         As a result, it's not possible anymore to search on key tags only. You have
406         to specify the domain name plus the tag. :-(
408 * func  Function parseurl added.
410 * func  Experimental code to register a new ksk. Currently it's more like
411         a key announcement because of the lack of identification and
412         authentication.
414 zkt 0.65 -- 22. Aug 2005
416 * misc  Rewrite of the domaincmp() function. Now it's round about 2 times faster.
417         After some additional changes and the compiler option -O3 the dnssec-zkt
418         on the ~ 12000 zones requires only a minute
419                 $ time dnssec-zkt -z -r sec > /dev/null
420                 real    0m58.287s
421                 user    0m54.610s
422                 sys     0m3.680s
424 * func  A keyset directory is introduced (experimental)
425         The parameter -d is added to the call of the dnssec-signzone command
426         if the config option KeySetDir is set.
427         As a result, all dsset-, keyset- and dlvset- files are stored in one directory.
428         The advantage is, that the chain of trust of all local subzone is build
429         automatically (This is the reason why we sort the zones with the child zones
430         first).
431         The disadvantage is that we store many files in single directory (3 files
432         per zone).
434 zkt 0.64 -- 1. Aug 2005
436 * bug   The code for option -Z of dnssec-zkt should be executed before we read the
437         complete directory tree. This is usefull if we have a very deep directory
438         structure and the recursive flag is switched on.
440 * func  SIG_Pseudorand parameter added.
442 * func  ([KZ]SK)|(SIG)_randfile parameter added.
444 * func  measure the time used for signing of each zone.
446 * bug   function logflush() added to misc.c and called by dosigning().
448 * misc  some perfomance test made:
449         - Directory structure "sec/<firstletter>/domain" with round about 12200 domains
450         - One of the domain is a big one (~ 820000 RRs), the others are mostly very small ones
451         - We use a dsa with 704 bits as ksk and a rsamd5 with 512 bits as zsk on each domain.
452         - All test made on Sun Fire V440 with 4 CPU and 4x2GB main memory
454                 # sequential signing of all zones 
455                 $ time dnssec-signer -v -v -f -D sec
456                 real    434m    (~ 7h 14min)
457                 user    188
458                 sys     175
460                 # with option -p and -r /dev/urandom
461                 $ time dnssec-signer -v -v -f -D sec > log
462                 real    96m28.306s
463                 user    290m41.980s
464                 sys     6m13.790s
466                 # one process for each firstletter subdirectory
467                 $ time par_signer.sh
468                 real    394m12.334s
469                 user    295m58.390s
470                 sys     786m42.479s
472                 # with option -p and -r /dev/urandom
473                 $ time par_signer.sh
474                 real    78m49.323s
475                 user    284m58.350s
476                 sys     5m39.340s
479                 $ time dnssec-zkt -z -r sec > /dev/null
480                 real    2m5.722s
481                 user    2m0.060s
482                 sys     0m4.510s
484         
485                 # signing the big (820000 RR) domain only
486                 $ time dnssec-signer -v -v -f -D sec/b/big-domain
487                 real    196m23.165      (~ 3h 16min)
488                 user    176m57.610
489                 sys     167m27.570
491                 # with option -p and -r /dev/urandom
492                 $ time dnssec-signer -v -v -f -D sec/b/big-domain
493                 real    49m53.152
494                 user    173m59.520
495                 sys     1m40.150
497 zkt 0.63 -- 14. June 2005
499 * bug   allow TTL value in keyfiles (see TTL_IN_KEYFILES_ALLOWED
500         in dki_readfile()).
502 * misc  function strchop() added to misc.c.
504 zkt 0.62 -- 13. May 2005
506 * func  dnssec-signer: Option -o added.
507         Now it works a little bit more like dnssec-signzone.
509 * func  strlist.c: prepstrlist and unprepstrlist functions get a
510         second parameter for the delimiter.
512 * bug   fixed some typos and inaccurate usage of symbolic constants.
513         Doing some housekeeping.
515 zkt 0.61 -- 3. May 2005
517 * bug   local config file will not be mentioned if -N switch is used.
519 zkt 0.6 -- 1. May 2005
521 * doc   dnssec-signer: man page added.
523 * func  dnssec-signer: Print out a warning message if ksk lifetime is exceeded.
525 * func  dnssec-signer: Remaining arguments will be interpreted as zone names
526         (in_strarr () added).
528 * func  dnssec-signer: Option -D added.
531 zkt 0.51 -- 8. April 2005
533 * func  dnssec-signer: Option -N added.
535 * func  dnssec-signer: change of keystatus from pre-published to active
536         resets timestamp of key, thus age of active key counts 0.
538 * bug   prepstrlist: resulting string was not terminated with '\0'.
540 * bug   dnssec-signer: do signing if there are additional keys, or the
541         status of any key is changed (function check_keytimestamp).
543 * func  dnssec-zkt: -l <list> option added.
545 * func  dnssec-zkt: -p flag defaults to on in key creation mode (-C).