static void usage (char *mesg, zconf_t * cp) { fprintf (stderr, "DNS Zone Key Management Tool %s\n", ZKT_VERSION); fprintf (stderr, "\n"); fprintf (stderr, "Create a new key \n"); sopt_usage ("\tusage: %s -C <name> [-k] [-dpr] [-c config] [dir ...]\n", progname); lopt_usage ("\tusage: %s --create=<name> [-k] [-dpr] [-c config] [dir ...]\n", progname); fprintf (stderr, "\t\tKSK (use -k): %s %d bits\n", dki_algo2str (cp->k_algo), cp->k_bits); fprintf (stderr, "\t\tZSK (default): %s %d bits\n", dki_algo2str (cp->k_algo), cp->z_bits); fprintf (stderr, "\n"); fprintf (stderr, "Change key status of specified key to published, active or depreciated\n"); fprintf (stderr, "\t(<keyspec> := tag | tag:name) \n"); sopt_usage ("\tusage: %s -P|-A|-D <keyspec> [-dr] [-c config] [dir ...]\n", progname); lopt_usage ("\tusage: %s --published=<keyspec> [-dr] [-c config] [dir ...]\n", progname); lopt_usage ("\tusage: %s --active=<keyspec> [-dr] [-c config] [dir ...]\n", progname); lopt_usage ("\tusage: %s --depreciated=<keyspec> [-dr] [-c config] [dir ...]\n", progname); fprintf (stderr, "\n"); fprintf (stderr, "Revoke specified key (<keyspec> := tag | tag:name) \n"); sopt_usage ("\tusage: %s -R <keyspec> [-dr] [-c config] [dir ...]\n", progname); lopt_usage ("\tusage: %s --revoke=<keyspec> [-dr] [-c config] [dir ...]\n", progname); fprintf (stderr, "\n"); fprintf (stderr, "Remove (rename) or destroy (delete) specified key (<keyspec> := tag | tag:name) \n"); lopt_usage ("\tusage: %s --remove=<keyspec> [-dr] [-c config] [dir ...]\n", progname); lopt_usage ("\tusage: %s --destroy=<keyspec> [-dr] [-c config] [dir ...]\n", progname); fprintf (stderr, "\n"); fprintf (stderr, "Initiate a semi-automated KSK rollover"); fprintf (stderr, "('%s -9%s' prints out a brief description)\n", progname, loptstr ("|--ksk-rollover", "")); sopt_usage ("\tusage: %s {-1} do.ma.in.\n", progname); lopt_usage ("\tusage: %s {--ksk-roll-phase1|--ksk-newkey} do.ma.in.\n", progname); sopt_usage ("\tusage: %s {-2} do.ma.in.\n", progname); lopt_usage ("\tusage: %s {--ksk-roll-phase2|--ksk-publish} do.ma.in.\n", progname); sopt_usage ("\tusage: %s {-3} do.ma.in.\n", progname); lopt_usage ("\tusage: %s {--ksk-roll-phase3|--ksk-delkey} do.ma.in.\n", progname); sopt_usage ("\tusage: %s {-0} do.ma.in.\n", progname); lopt_usage ("\tusage: %s {--ksk-roll-status|--ksk-status} do.ma.in.\n", progname); fprintf (stderr, "\n"); fprintf (stderr, "\n"); fprintf (stderr, "General options \n"); fprintf (stderr, "\t-c file%s", loptstr (", --config=file\n", "")); fprintf (stderr, "\t\t read config from <file> instead of %s\n", CONFIG_FILE); fprintf (stderr, "\t-O optstr%s", loptstr (", --config-option=\"optstr\"\n", "")); fprintf (stderr, "\t\t read config options from commandline\n"); fprintf (stderr, "\t-d%s\t skip directory arguments\n", loptstr (", --directory", "\t")); fprintf (stderr, "\t-r%s\t recursive mode on/off (default: %s)\n", loptstr (", --recursive", "\t"), recflag ? "on" : "off"); fprintf (stderr, "\t-F days%s=days\t set key lifetime\n", loptstr (", --setlifetime", "\t")); fprintf (stderr, "\t-k%s\t key signing keys only\n", loptstr (", --ksk", "\t")); fprintf (stderr, "\t-z%s\t zone signing keys only\n", loptstr (", --zsk", "\t")); if (mesg && *mesg) fprintf (stderr, "%s\n", mesg); exit (1); }
static void printconfigline (FILE *fp, zconf_para_t *cp) { int i; long lval; assert (fp != NULL); assert (cp != NULL); switch ( cp->type ) { case CONF_COMMENT: if ( cp->var ) fprintf (fp, "# %s\n", (char *)cp->var); else fprintf (fp, "\n"); break; case CONF_LEVEL: case CONF_FACILITY: if ( *(char **)cp->var != NULL ) { if ( **(char **)cp->var != '\0' ) { char *p; fprintf (fp, "%s:\t", cp->label); for ( p = *(char **)cp->var; *p; p++ ) putc (toupper (*p), fp); fprintf (fp, "\n"); } else fprintf (fp, "%s:\tNONE", cp->label); } break; case CONF_STRING: if ( *(char **)cp->var ) fprintf (fp, "%s:\t\"%s\"\n", cp->label, *(char **)cp->var); break; case CONF_BOOL: fprintf (fp, "%s:\t%s\n", cp->label, bool2str ( *(int*)cp->var )); break; case CONF_TIMEINT: lval = *(ulong*)cp->var; /* in that case it should be of type ulong */ fprintf (fp, "%s:\t%s", cp->label, timeint2str (lval)); if ( lval ) fprintf (fp, "\t# (%ld seconds)", lval); putc ('\n', fp); break; case CONF_ALGO: i = *(int*)cp->var; if ( i ) { fprintf (fp, "%s:\t%s", cp->label, dki_algo2str (i)); fprintf (fp, "\t# (Algorithm ID %d)\n", i); } break; case CONF_SERIAL: fprintf (fp, "%s:\t", cp->label); if ( *(serial_form_t*)cp->var == Unixtime ) fprintf (fp, "unixtime\n"); else fprintf (fp, "incremental\n"); break; case CONF_INT: fprintf (fp, "%s:\t%d\n", cp->label, *(int *)cp->var); break; case CONF_END: /* NOTREACHED */ break; } }