<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<!--
 - Copyright (C) 2001  Internet Software Consortium.
 -
 - Permission to use, copy, modify, and distribute this software for any
 - purpose with or without fee is hereby granted, provided that the above
 - copyright notice and this permission notice appear in all copies.
 -
 - THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
 - DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
 - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
 - INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
 - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
 - FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
 - NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
 - WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-->

<!-- $Id: dnssec-makekeyset.docbook,v 1.3 2001/09/14 20:20:54 gson Exp $ -->

<refentry>
  <refentryinfo>
    <date>June 30, 2000</date>
  </refentryinfo>

  <refmeta>
    <refentrytitle><application>dnssec-makekeyset</application></refentrytitle>
    <manvolnum>8</manvolnum>
    <refmiscinfo>BIND9</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname><application>dnssec-makekeyset</application></refname>
    <refpurpose>DNSSEC zone signing tool</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>dnssec-makekeyset</command>
      <arg><option>-a</option></arg>
      <arg><option>-s <replaceable class="parameter">start-time</replaceable></option></arg>
      <arg><option>-e <replaceable class="parameter">end-time</replaceable></option></arg>
      <arg><option>-h</option></arg>
      <arg><option>-p</option></arg>
      <arg><option>-r <replaceable class="parameter">randomdev</replaceable></option></arg>
      <arg><option>-t</option><replaceable class="parameter">ttl</replaceable></arg>
      <arg><option>-v <replaceable class="parameter">level</replaceable></option></arg>
      <arg choice="req" rep="repeat">key</arg>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>DESCRIPTION</title>
    <para>
        <command>dnssec-makekeyset</command> generates a key set from one
	or more keys created by <command>dnssec-keygen</command>.  It creates
	a file containing a KEY record for each key, and self-signs the key
	set with each zone key.  The output file is of the form
	<filename>keyset-nnnn.</filename>, where <filename>nnnn</filename>
	is the zone name.
    </para>
  </refsect1>

  <refsect1>
    <title>OPTIONS</title>

    <variablelist>
      <varlistentry>
        <term>-a</term>
	<listitem>
	  <para>
	      Verify all generated signatures.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term>-s <replaceable class="parameter">start-time</replaceable></term>
	<listitem>
	  <para>
	       Specify the date and time when the generated SIG records
	       become valid.  This can be either an absolute or relative
	       time.  An absolute start time is indicated by a number
	       in YYYYMMDDHHMMSS notation; 20000530144500 denotes
	       14:45:00 UTC on May 30th, 2000.  A relative start time is
	       indicated by +N, which is N seconds from the current time.
	       If no <option>start-time</option> is specified, the current
	       time is used.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term>-e <replaceable class="parameter">end-time</replaceable></term>
	<listitem>
	  <para>
	       Specify the date and time when the generated SIG records
	       expire.  As with <option>start-time</option>, an absolute
	       time is indicated in YYYYMMDDHHMMSS notation.  A time relative
	       to the start time is indicated with +N, which is N seconds from
	       the start time.  A time realtive to the current time is
	       indicated with now+N.  If no <option>end-time</option> is
	       specified, 30 days from the start time is used as a default.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term>-h</term>
	<listitem>
	  <para>
	       Prints a short summary of the options and arguments to
	       <command>dnssec-makekeyset</command>.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term>-p</term>
	<listitem>
	  <para>
	       Use pseudo-random data when signing the zone.  This is faster,
	       but less secure, than using real random data.  This option
	       may be useful when signing large zones or when the entropy
	       source is limited.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term>-r <replaceable class="parameter">randomdev</replaceable></term>
	<listitem>
	  <para>
	       Specifies the source of randomness.  If the operating
	       system does not provide a <filename>/dev/random</filename>
	       or equivalent device, the default source of randomness
	       is keyboard input.  <filename>randomdev</filename> specifies
	       the name of a character device or file containing random
	       data to be used instead of the default.  The special value
	       <filename>keyboard</filename> indicates that keyboard
	       input should be used.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term>-t <replaceable class="parameter">ttl</replaceable></term>
	<listitem>
	  <para>
	       Specify the TTL (time to live) of the KEY and SIG records.
	       The default is 3600 seconds.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term>-v <replaceable class="parameter">level</replaceable></term>
	<listitem>
	  <para>
	       Sets the debugging level.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term>key</term>
	<listitem>
	  <para>
	       The list of keys to be included in the keyset file.  These keys
	       are expressed in the form <filename>Knnnn.+aaa+iiiii</filename>
	       as generated by <command>dnssec-keygen</command>.
	  </para>
	</listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>EXAMPLE</title>
    <para>
        The following command generates a keyset containing the DSA key for
	<userinput>example.com</userinput> generated in the
	<command>dnssec-keygen</command> man page.
    </para>
    <para>
        <userinput>dnssec-makekeyset -t 86400 -s 20000701120000 -e +2592000 Kexample.com.+003+26160</userinput>
    </para>
    <para>
        In this example, <command>dnssec-makekeyset</command> creates
	the file <filename>keyset-example.com.</filename>.  This file
	contains the specified key and a self-generated signature.
    </para>
    <para>
        The DNS administrator for <userinput>example.com</userinput> could
	send <filename>keyset-example.com.</filename> to the DNS
	administrator for <userinput>.com</userinput> for signing, if the
	.com zone is DNSSEC-aware and the administrators of the two zones
	have some mechanism for authenticating each other and exchanging
	the keys and signatures securely.
    </para>
  </refsect1>

  <refsect1>
    <title>SEE ALSO</title>
    <para>
      <citerefentry>
        <refentrytitle>dnssec-keygen</refentrytitle>
	<manvolnum>8</manvolnum>
      </citerefentry>,
      <citerefentry>
        <refentrytitle>dnssec-signkey</refentrytitle>
	<manvolnum>8</manvolnum>
      </citerefentry>,
      <citetitle>BIND 9 Administrator Reference Manual</citetitle>,
      <citetitle>RFC 2535</citetitle>.
    </para>
  </refsect1>

  <refsect1>
    <title>AUTHOR</title>
    <para>
        <corpauthor>Internet Software Consortium</corpauthor>
    </para>
  </refsect1>

</refentry>

<!--
 - Local variables:
 - mode: sgml
 - End:
-->
