xref: /freebsd/contrib/ntp/util/ntp-keygen-opts.c (revision 091002585974d17c9533f943ec351c13a69788ab)
1ea906c41SOllivier Robert /*
2ea906c41SOllivier Robert  *  EDIT THIS FILE WITH CAUTION  (ntp-keygen-opts.c)
3ea906c41SOllivier Robert  *
4*09100258SXin LI  *  It has been AutoGen-ed  February 27, 2018 at 05:15:44 PM by AutoGen 5.18.5
5ea906c41SOllivier Robert  *  From the definitions    ntp-keygen-opts.def
6ea906c41SOllivier Robert  *  and the template file   options
7ea906c41SOllivier Robert  *
82b15cb3dSCy Schubert  * Generated from AutoOpts 41:0:16 templates.
92b15cb3dSCy Schubert  *
102b15cb3dSCy Schubert  *  AutoOpts is a copyrighted work.  This source file is not encumbered
112b15cb3dSCy Schubert  *  by AutoOpts licensing, but is provided under the licensing terms chosen
122b15cb3dSCy Schubert  *  by the ntp-keygen author or copyright holder.  AutoOpts is
132b15cb3dSCy Schubert  *  licensed under the terms of the LGPL.  The redistributable library
142b15cb3dSCy Schubert  *  (``libopts'') is licensed under the terms of either the LGPL or, at the
152b15cb3dSCy Schubert  *  users discretion, the BSD license.  See the AutoOpts and/or libopts sources
162b15cb3dSCy Schubert  *  for details.
172b15cb3dSCy Schubert  *
182b15cb3dSCy Schubert  * The ntp-keygen program is copyrighted and licensed
192b15cb3dSCy Schubert  * under the following terms:
202b15cb3dSCy Schubert  *
21f0574f5cSXin LI  *  Copyright (C) 1992-2017 The University of Delaware and Network Time Foundation, all rights reserved.
222b15cb3dSCy Schubert  *  This is free software. It is licensed for use, modification and
232b15cb3dSCy Schubert  *  redistribution under the terms of the NTP License, copies of which
242b15cb3dSCy Schubert  *  can be seen at:
252b15cb3dSCy Schubert  *    <http://ntp.org/license>
262b15cb3dSCy Schubert  *    <http://opensource.org/licenses/ntp-license.php>
272b15cb3dSCy Schubert  *
282b15cb3dSCy Schubert  *  Permission to use, copy, modify, and distribute this software and its
292b15cb3dSCy Schubert  *  documentation for any purpose with or without fee is hereby granted,
302b15cb3dSCy Schubert  *  provided that the above copyright notice appears in all copies and that
312b15cb3dSCy Schubert  *  both the copyright notice and this permission notice appear in
322b15cb3dSCy Schubert  *  supporting documentation, and that the name The University of Delaware not be used in
332b15cb3dSCy Schubert  *  advertising or publicity pertaining to distribution of the software
342b15cb3dSCy Schubert  *  without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
352b15cb3dSCy Schubert  *  representations about the suitability this software for any purpose. It
362b15cb3dSCy Schubert  *  is provided "as is" without express or implied warranty.
37ea906c41SOllivier Robert  */
38ea906c41SOllivier Robert 
392b15cb3dSCy Schubert #ifndef __doxygen__
402b15cb3dSCy Schubert #define OPTION_CODE_COMPILE 1
412b15cb3dSCy Schubert #include "ntp-keygen-opts.h"
422b15cb3dSCy Schubert #include <sys/types.h>
43ea906c41SOllivier Robert 
44ea906c41SOllivier Robert #include <limits.h>
45ea906c41SOllivier Robert #include <stdio.h>
462b15cb3dSCy Schubert #include <stdlib.h>
472b15cb3dSCy Schubert #include <errno.h>
48ea906c41SOllivier Robert 
49ea906c41SOllivier Robert #ifdef  __cplusplus
50ea906c41SOllivier Robert extern "C" {
51ea906c41SOllivier Robert #endif
522b15cb3dSCy Schubert extern FILE * option_usage_fp;
532b15cb3dSCy Schubert #define zCopyright      (ntp_keygen_opt_strs+0)
54f0574f5cSXin LI #define zLicenseDescrip (ntp_keygen_opt_strs+353)
55ea906c41SOllivier Robert 
56ea906c41SOllivier Robert /*
57ea906c41SOllivier Robert  *  global included definitions
58ea906c41SOllivier Robert  */
59ea906c41SOllivier Robert #include <stdlib.h>
602b15cb3dSCy Schubert 
61ea906c41SOllivier Robert #ifdef __windows
62ea906c41SOllivier Robert   extern int atoi(const char*);
63ea906c41SOllivier Robert #else
64ea906c41SOllivier Robert # include <stdlib.h>
65ea906c41SOllivier Robert #endif
66ea906c41SOllivier Robert 
67ea906c41SOllivier Robert #ifndef NULL
68ea906c41SOllivier Robert #  define NULL 0
69ea906c41SOllivier Robert #endif
702b15cb3dSCy Schubert 
712b15cb3dSCy Schubert /**
722b15cb3dSCy Schubert  *  static const strings for ntp-keygen options
73ea906c41SOllivier Robert  */
74*09100258SXin LI static char const ntp_keygen_opt_strs[2442] =
75*09100258SXin LI /*     0 */ "ntp-keygen (ntp) 4.2.8p11\n"
76f0574f5cSXin LI             "Copyright (C) 1992-2017 The University of Delaware and Network Time Foundation, all rights reserved.\n"
772b15cb3dSCy Schubert             "This is free software. It is licensed for use, modification and\n"
782b15cb3dSCy Schubert             "redistribution under the terms of the NTP License, copies of which\n"
792b15cb3dSCy Schubert             "can be seen at:\n"
802b15cb3dSCy Schubert             "  <http://ntp.org/license>\n"
812b15cb3dSCy Schubert             "  <http://opensource.org/licenses/ntp-license.php>\n\0"
82f0574f5cSXin LI /*   353 */ "Permission to use, copy, modify, and distribute this software and its\n"
832b15cb3dSCy Schubert             "documentation for any purpose with or without fee is hereby granted,\n"
842b15cb3dSCy Schubert             "provided that the above copyright notice appears in all copies and that\n"
852b15cb3dSCy Schubert             "both the copyright notice and this permission notice appear in supporting\n"
862b15cb3dSCy Schubert             "documentation, and that the name The University of Delaware not be used in\n"
872b15cb3dSCy Schubert             "advertising or publicity pertaining to distribution of the software without\n"
882b15cb3dSCy Schubert             "specific, written prior permission.  The University of Delaware and Network\n"
892b15cb3dSCy Schubert             "Time Foundation makes no representations about the suitability this\n"
902b15cb3dSCy Schubert             "software for any purpose.  It is provided \"as is\" without express or\n"
912b15cb3dSCy Schubert             "implied warranty.\n\0"
92f0574f5cSXin LI /*  1021 */ "identity modulus bits\0"
93f0574f5cSXin LI /*  1043 */ "IMBITS\0"
94f0574f5cSXin LI /*  1050 */ "imbits\0"
95f0574f5cSXin LI /*  1057 */ "certificate scheme\0"
96f0574f5cSXin LI /*  1076 */ "CERTIFICATE\0"
97f0574f5cSXin LI /*  1088 */ "certificate\0"
98f0574f5cSXin LI /*  1100 */ "privatekey cipher\0"
99f0574f5cSXin LI /*  1118 */ "CIPHER\0"
100f0574f5cSXin LI /*  1125 */ "cipher\0"
101f0574f5cSXin LI /*  1132 */ "Increase debug verbosity level\0"
102f0574f5cSXin LI /*  1163 */ "DEBUG_LEVEL\0"
103f0574f5cSXin LI /*  1175 */ "debug-level\0"
104f0574f5cSXin LI /*  1187 */ "Set the debug verbosity level\0"
105f0574f5cSXin LI /*  1217 */ "SET_DEBUG_LEVEL\0"
106f0574f5cSXin LI /*  1233 */ "set-debug-level\0"
107f0574f5cSXin LI /*  1249 */ "Write IFF or GQ identity keys\0"
108f0574f5cSXin LI /*  1279 */ "ID_KEY\0"
109f0574f5cSXin LI /*  1286 */ "id-key\0"
110f0574f5cSXin LI /*  1293 */ "Generate GQ parameters and keys\0"
111f0574f5cSXin LI /*  1325 */ "GQ_PARAMS\0"
112f0574f5cSXin LI /*  1335 */ "gq-params\0"
113f0574f5cSXin LI /*  1345 */ "generate RSA host key\0"
114f0574f5cSXin LI /*  1367 */ "HOST_KEY\0"
115f0574f5cSXin LI /*  1376 */ "host-key\0"
116f0574f5cSXin LI /*  1385 */ "generate IFF parameters\0"
117f0574f5cSXin LI /*  1409 */ "IFFKEY\0"
118f0574f5cSXin LI /*  1416 */ "iffkey\0"
119f0574f5cSXin LI /*  1423 */ "set Autokey group name\0"
120f0574f5cSXin LI /*  1446 */ "IDENT\0"
121f0574f5cSXin LI /*  1452 */ "ident\0"
122f0574f5cSXin LI /*  1458 */ "set certificate lifetime\0"
123f0574f5cSXin LI /*  1483 */ "LIFETIME\0"
124f0574f5cSXin LI /*  1492 */ "lifetime\0"
125*09100258SXin LI /*  1501 */ "prime modulus\0"
126*09100258SXin LI /*  1515 */ "MODULUS\0"
127*09100258SXin LI /*  1523 */ "modulus\0"
128*09100258SXin LI /*  1531 */ "generate symmetric keys\0"
129*09100258SXin LI /*  1555 */ "MD5KEY\0"
130*09100258SXin LI /*  1562 */ "md5key\0"
131*09100258SXin LI /*  1569 */ "generate PC private certificate\0"
132*09100258SXin LI /*  1601 */ "PVT_CERT\0"
133*09100258SXin LI /*  1610 */ "pvt-cert\0"
134*09100258SXin LI /*  1619 */ "local private password\0"
135*09100258SXin LI /*  1642 */ "PASSWORD\0"
136*09100258SXin LI /*  1651 */ "password\0"
137*09100258SXin LI /*  1660 */ "export IFF or GQ group keys with password\0"
138*09100258SXin LI /*  1702 */ "EXPORT_PASSWD\0"
139*09100258SXin LI /*  1716 */ "export-passwd\0"
140*09100258SXin LI /*  1730 */ "set host and optionally group name\0"
141*09100258SXin LI /*  1765 */ "SUBJECT_NAME\0"
142*09100258SXin LI /*  1778 */ "subject-name\0"
143*09100258SXin LI /*  1791 */ "generate sign key (RSA or DSA)\0"
144*09100258SXin LI /*  1822 */ "SIGN_KEY\0"
145*09100258SXin LI /*  1831 */ "sign-key\0"
146*09100258SXin LI /*  1840 */ "trusted certificate (TC scheme)\0"
147*09100258SXin LI /*  1872 */ "TRUSTED_CERT\0"
148*09100258SXin LI /*  1885 */ "trusted-cert\0"
149*09100258SXin LI /*  1898 */ "generate <num> MV parameters\0"
150*09100258SXin LI /*  1927 */ "MV_PARAMS\0"
151*09100258SXin LI /*  1937 */ "mv-params\0"
152*09100258SXin LI /*  1947 */ "update <num> MV keys\0"
153*09100258SXin LI /*  1968 */ "MV_KEYS\0"
154*09100258SXin LI /*  1976 */ "mv-keys\0"
155*09100258SXin LI /*  1984 */ "display extended usage information and exit\0"
156*09100258SXin LI /*  2028 */ "help\0"
157*09100258SXin LI /*  2033 */ "extended usage information passed thru pager\0"
158*09100258SXin LI /*  2078 */ "more-help\0"
159*09100258SXin LI /*  2088 */ "output version information and exit\0"
160*09100258SXin LI /*  2124 */ "version\0"
161*09100258SXin LI /*  2132 */ "save the option state to a config file\0"
162*09100258SXin LI /*  2171 */ "save-opts\0"
163*09100258SXin LI /*  2181 */ "load options from a config file\0"
164*09100258SXin LI /*  2213 */ "LOAD_OPTS\0"
165*09100258SXin LI /*  2223 */ "no-load-opts\0"
166*09100258SXin LI /*  2236 */ "no\0"
167*09100258SXin LI /*  2239 */ "NTP_KEYGEN\0"
168*09100258SXin LI /*  2250 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p11\n"
1692b15cb3dSCy Schubert             "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
170*09100258SXin LI /*  2365 */ "$HOME\0"
171*09100258SXin LI /*  2371 */ ".\0"
172*09100258SXin LI /*  2373 */ ".ntprc\0"
173*09100258SXin LI /*  2380 */ "http://bugs.ntp.org, bugs@ntp.org\0"
174*09100258SXin LI /*  2414 */ "\n\0"
175*09100258SXin LI /*  2416 */ "ntp-keygen (ntp) 4.2.8p11";
1762b15cb3dSCy Schubert 
1772b15cb3dSCy Schubert /**
1782b15cb3dSCy Schubert  *  imbits option description:
1792b15cb3dSCy Schubert  */
1802b15cb3dSCy Schubert #ifdef AUTOKEY
1812b15cb3dSCy Schubert /** Descriptive text for the imbits option */
182f0574f5cSXin LI #define IMBITS_DESC      (ntp_keygen_opt_strs+1021)
1832b15cb3dSCy Schubert /** Upper-cased name for the imbits option */
184f0574f5cSXin LI #define IMBITS_NAME      (ntp_keygen_opt_strs+1043)
1852b15cb3dSCy Schubert /** Name string for the imbits option */
186f0574f5cSXin LI #define IMBITS_name      (ntp_keygen_opt_strs+1050)
1872b15cb3dSCy Schubert /** Compiled in flag settings for the imbits option */
1882b15cb3dSCy Schubert #define IMBITS_FLAGS     (OPTST_DISABLED \
1892b15cb3dSCy Schubert         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
1902b15cb3dSCy Schubert 
1912b15cb3dSCy Schubert #else   /* disable imbits */
1922b15cb3dSCy Schubert #define IMBITS_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
1932b15cb3dSCy Schubert #define IMBITS_NAME      NULL
1942b15cb3dSCy Schubert #define IMBITS_DESC      NULL
1952b15cb3dSCy Schubert #define IMBITS_name      NULL
1962b15cb3dSCy Schubert #endif  /* AUTOKEY */
1972b15cb3dSCy Schubert 
1982b15cb3dSCy Schubert /**
1992b15cb3dSCy Schubert  *  certificate option description:
2002b15cb3dSCy Schubert  */
2012b15cb3dSCy Schubert #ifdef AUTOKEY
2022b15cb3dSCy Schubert /** Descriptive text for the certificate option */
203f0574f5cSXin LI #define CERTIFICATE_DESC      (ntp_keygen_opt_strs+1057)
2042b15cb3dSCy Schubert /** Upper-cased name for the certificate option */
205f0574f5cSXin LI #define CERTIFICATE_NAME      (ntp_keygen_opt_strs+1076)
2062b15cb3dSCy Schubert /** Name string for the certificate option */
207f0574f5cSXin LI #define CERTIFICATE_name      (ntp_keygen_opt_strs+1088)
2082b15cb3dSCy Schubert /** Compiled in flag settings for the certificate option */
209ea906c41SOllivier Robert #define CERTIFICATE_FLAGS     (OPTST_DISABLED \
210ea906c41SOllivier Robert         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
211ea906c41SOllivier Robert 
2122b15cb3dSCy Schubert #else   /* disable certificate */
213ea906c41SOllivier Robert #define CERTIFICATE_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
2142b15cb3dSCy Schubert #define CERTIFICATE_NAME      NULL
2152b15cb3dSCy Schubert #define CERTIFICATE_DESC      NULL
2162b15cb3dSCy Schubert #define CERTIFICATE_name      NULL
2172b15cb3dSCy Schubert #endif  /* AUTOKEY */
218ea906c41SOllivier Robert 
2192b15cb3dSCy Schubert /**
2202b15cb3dSCy Schubert  *  cipher option description:
221ea906c41SOllivier Robert  */
2222b15cb3dSCy Schubert #ifdef AUTOKEY
2232b15cb3dSCy Schubert /** Descriptive text for the cipher option */
224f0574f5cSXin LI #define CIPHER_DESC      (ntp_keygen_opt_strs+1100)
2252b15cb3dSCy Schubert /** Upper-cased name for the cipher option */
226f0574f5cSXin LI #define CIPHER_NAME      (ntp_keygen_opt_strs+1118)
2272b15cb3dSCy Schubert /** Name string for the cipher option */
228f0574f5cSXin LI #define CIPHER_name      (ntp_keygen_opt_strs+1125)
2292b15cb3dSCy Schubert /** Compiled in flag settings for the cipher option */
2302b15cb3dSCy Schubert #define CIPHER_FLAGS     (OPTST_DISABLED \
231ea906c41SOllivier Robert         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
232ea906c41SOllivier Robert 
2332b15cb3dSCy Schubert #else   /* disable cipher */
2342b15cb3dSCy Schubert #define CIPHER_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
2352b15cb3dSCy Schubert #define CIPHER_NAME      NULL
2362b15cb3dSCy Schubert #define CIPHER_DESC      NULL
2372b15cb3dSCy Schubert #define CIPHER_name      NULL
2382b15cb3dSCy Schubert #endif  /* AUTOKEY */
239ea906c41SOllivier Robert 
2402b15cb3dSCy Schubert /**
2412b15cb3dSCy Schubert  *  debug-level option description:
242ea906c41SOllivier Robert  */
2432b15cb3dSCy Schubert /** Descriptive text for the debug-level option */
244f0574f5cSXin LI #define DEBUG_LEVEL_DESC      (ntp_keygen_opt_strs+1132)
2452b15cb3dSCy Schubert /** Upper-cased name for the debug-level option */
246f0574f5cSXin LI #define DEBUG_LEVEL_NAME      (ntp_keygen_opt_strs+1163)
2472b15cb3dSCy Schubert /** Name string for the debug-level option */
248f0574f5cSXin LI #define DEBUG_LEVEL_name      (ntp_keygen_opt_strs+1175)
2492b15cb3dSCy Schubert /** Compiled in flag settings for the debug-level option */
2502b15cb3dSCy Schubert #define DEBUG_LEVEL_FLAGS     (OPTST_DISABLED)
2512b15cb3dSCy Schubert 
2522b15cb3dSCy Schubert /**
2532b15cb3dSCy Schubert  *  set-debug-level option description:
2542b15cb3dSCy Schubert  */
2552b15cb3dSCy Schubert /** Descriptive text for the set-debug-level option */
256f0574f5cSXin LI #define SET_DEBUG_LEVEL_DESC      (ntp_keygen_opt_strs+1187)
2572b15cb3dSCy Schubert /** Upper-cased name for the set-debug-level option */
258f0574f5cSXin LI #define SET_DEBUG_LEVEL_NAME      (ntp_keygen_opt_strs+1217)
2592b15cb3dSCy Schubert /** Name string for the set-debug-level option */
260f0574f5cSXin LI #define SET_DEBUG_LEVEL_name      (ntp_keygen_opt_strs+1233)
2612b15cb3dSCy Schubert /** Compiled in flag settings for the set-debug-level option */
2622b15cb3dSCy Schubert #define SET_DEBUG_LEVEL_FLAGS     (OPTST_DISABLED \
2632b15cb3dSCy Schubert         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
2642b15cb3dSCy Schubert 
2652b15cb3dSCy Schubert /**
2662b15cb3dSCy Schubert  *  id-key option description:
2672b15cb3dSCy Schubert  */
2682b15cb3dSCy Schubert #ifdef AUTOKEY
2692b15cb3dSCy Schubert /** Descriptive text for the id-key option */
270f0574f5cSXin LI #define ID_KEY_DESC      (ntp_keygen_opt_strs+1249)
2712b15cb3dSCy Schubert /** Upper-cased name for the id-key option */
272f0574f5cSXin LI #define ID_KEY_NAME      (ntp_keygen_opt_strs+1279)
2732b15cb3dSCy Schubert /** Name string for the id-key option */
274f0574f5cSXin LI #define ID_KEY_name      (ntp_keygen_opt_strs+1286)
2752b15cb3dSCy Schubert /** Compiled in flag settings for the id-key option */
276ea906c41SOllivier Robert #define ID_KEY_FLAGS     (OPTST_DISABLED)
277ea906c41SOllivier Robert 
2782b15cb3dSCy Schubert #else   /* disable id-key */
279ea906c41SOllivier Robert #define ID_KEY_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
2802b15cb3dSCy Schubert #define ID_KEY_NAME      NULL
2812b15cb3dSCy Schubert #define ID_KEY_DESC      NULL
2822b15cb3dSCy Schubert #define ID_KEY_name      NULL
2832b15cb3dSCy Schubert #endif  /* AUTOKEY */
284ea906c41SOllivier Robert 
2852b15cb3dSCy Schubert /**
2862b15cb3dSCy Schubert  *  gq-params option description:
287ea906c41SOllivier Robert  */
2882b15cb3dSCy Schubert #ifdef AUTOKEY
2892b15cb3dSCy Schubert /** Descriptive text for the gq-params option */
290f0574f5cSXin LI #define GQ_PARAMS_DESC      (ntp_keygen_opt_strs+1293)
2912b15cb3dSCy Schubert /** Upper-cased name for the gq-params option */
292f0574f5cSXin LI #define GQ_PARAMS_NAME      (ntp_keygen_opt_strs+1325)
2932b15cb3dSCy Schubert /** Name string for the gq-params option */
294f0574f5cSXin LI #define GQ_PARAMS_name      (ntp_keygen_opt_strs+1335)
2952b15cb3dSCy Schubert /** Compiled in flag settings for the gq-params option */
296ea906c41SOllivier Robert #define GQ_PARAMS_FLAGS     (OPTST_DISABLED)
297ea906c41SOllivier Robert 
2982b15cb3dSCy Schubert #else   /* disable gq-params */
299ea906c41SOllivier Robert #define GQ_PARAMS_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
3002b15cb3dSCy Schubert #define GQ_PARAMS_NAME      NULL
3012b15cb3dSCy Schubert #define GQ_PARAMS_DESC      NULL
3022b15cb3dSCy Schubert #define GQ_PARAMS_name      NULL
3032b15cb3dSCy Schubert #endif  /* AUTOKEY */
304ea906c41SOllivier Robert 
3052b15cb3dSCy Schubert /**
3062b15cb3dSCy Schubert  *  host-key option description:
307ea906c41SOllivier Robert  */
3082b15cb3dSCy Schubert #ifdef AUTOKEY
3092b15cb3dSCy Schubert /** Descriptive text for the host-key option */
310f0574f5cSXin LI #define HOST_KEY_DESC      (ntp_keygen_opt_strs+1345)
3112b15cb3dSCy Schubert /** Upper-cased name for the host-key option */
312f0574f5cSXin LI #define HOST_KEY_NAME      (ntp_keygen_opt_strs+1367)
3132b15cb3dSCy Schubert /** Name string for the host-key option */
314f0574f5cSXin LI #define HOST_KEY_name      (ntp_keygen_opt_strs+1376)
3152b15cb3dSCy Schubert /** Compiled in flag settings for the host-key option */
316ea906c41SOllivier Robert #define HOST_KEY_FLAGS     (OPTST_DISABLED)
317ea906c41SOllivier Robert 
3182b15cb3dSCy Schubert #else   /* disable host-key */
319ea906c41SOllivier Robert #define HOST_KEY_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
3202b15cb3dSCy Schubert #define HOST_KEY_NAME      NULL
3212b15cb3dSCy Schubert #define HOST_KEY_DESC      NULL
3222b15cb3dSCy Schubert #define HOST_KEY_name      NULL
3232b15cb3dSCy Schubert #endif  /* AUTOKEY */
324ea906c41SOllivier Robert 
3252b15cb3dSCy Schubert /**
3262b15cb3dSCy Schubert  *  iffkey option description:
327ea906c41SOllivier Robert  */
3282b15cb3dSCy Schubert #ifdef AUTOKEY
3292b15cb3dSCy Schubert /** Descriptive text for the iffkey option */
330f0574f5cSXin LI #define IFFKEY_DESC      (ntp_keygen_opt_strs+1385)
3312b15cb3dSCy Schubert /** Upper-cased name for the iffkey option */
332f0574f5cSXin LI #define IFFKEY_NAME      (ntp_keygen_opt_strs+1409)
3332b15cb3dSCy Schubert /** Name string for the iffkey option */
334f0574f5cSXin LI #define IFFKEY_name      (ntp_keygen_opt_strs+1416)
3352b15cb3dSCy Schubert /** Compiled in flag settings for the iffkey option */
336ea906c41SOllivier Robert #define IFFKEY_FLAGS     (OPTST_DISABLED)
337ea906c41SOllivier Robert 
3382b15cb3dSCy Schubert #else   /* disable iffkey */
339ea906c41SOllivier Robert #define IFFKEY_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
3402b15cb3dSCy Schubert #define IFFKEY_NAME      NULL
3412b15cb3dSCy Schubert #define IFFKEY_DESC      NULL
3422b15cb3dSCy Schubert #define IFFKEY_name      NULL
3432b15cb3dSCy Schubert #endif  /* AUTOKEY */
344ea906c41SOllivier Robert 
3452b15cb3dSCy Schubert /**
3462b15cb3dSCy Schubert  *  ident option description:
347ea906c41SOllivier Robert  */
3482b15cb3dSCy Schubert #ifdef AUTOKEY
3492b15cb3dSCy Schubert /** Descriptive text for the ident option */
350f0574f5cSXin LI #define IDENT_DESC      (ntp_keygen_opt_strs+1423)
3512b15cb3dSCy Schubert /** Upper-cased name for the ident option */
352f0574f5cSXin LI #define IDENT_NAME      (ntp_keygen_opt_strs+1446)
3532b15cb3dSCy Schubert /** Name string for the ident option */
354f0574f5cSXin LI #define IDENT_name      (ntp_keygen_opt_strs+1452)
3552b15cb3dSCy Schubert /** Compiled in flag settings for the ident option */
3562b15cb3dSCy Schubert #define IDENT_FLAGS     (OPTST_DISABLED \
3572b15cb3dSCy Schubert         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
358ea906c41SOllivier Robert 
3592b15cb3dSCy Schubert #else   /* disable ident */
3602b15cb3dSCy Schubert #define IDENT_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
3612b15cb3dSCy Schubert #define IDENT_NAME      NULL
3622b15cb3dSCy Schubert #define IDENT_DESC      NULL
3632b15cb3dSCy Schubert #define IDENT_name      NULL
3642b15cb3dSCy Schubert #endif  /* AUTOKEY */
365ea906c41SOllivier Robert 
3662b15cb3dSCy Schubert /**
3672b15cb3dSCy Schubert  *  lifetime option description:
368ea906c41SOllivier Robert  */
3692b15cb3dSCy Schubert #ifdef AUTOKEY
3702b15cb3dSCy Schubert /** Descriptive text for the lifetime option */
371f0574f5cSXin LI #define LIFETIME_DESC      (ntp_keygen_opt_strs+1458)
3722b15cb3dSCy Schubert /** Upper-cased name for the lifetime option */
373f0574f5cSXin LI #define LIFETIME_NAME      (ntp_keygen_opt_strs+1483)
3742b15cb3dSCy Schubert /** Name string for the lifetime option */
375f0574f5cSXin LI #define LIFETIME_name      (ntp_keygen_opt_strs+1492)
3762b15cb3dSCy Schubert /** Compiled in flag settings for the lifetime option */
3772b15cb3dSCy Schubert #define LIFETIME_FLAGS     (OPTST_DISABLED \
3782b15cb3dSCy Schubert         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
3792b15cb3dSCy Schubert 
3802b15cb3dSCy Schubert #else   /* disable lifetime */
3812b15cb3dSCy Schubert #define LIFETIME_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
3822b15cb3dSCy Schubert #define LIFETIME_NAME      NULL
3832b15cb3dSCy Schubert #define LIFETIME_DESC      NULL
3842b15cb3dSCy Schubert #define LIFETIME_name      NULL
3852b15cb3dSCy Schubert #endif  /* AUTOKEY */
3862b15cb3dSCy Schubert 
3872b15cb3dSCy Schubert /**
3882b15cb3dSCy Schubert  *  modulus option description:
389ea906c41SOllivier Robert  */
3902b15cb3dSCy Schubert #ifdef AUTOKEY
3912b15cb3dSCy Schubert /** Descriptive text for the modulus option */
392*09100258SXin LI #define MODULUS_DESC      (ntp_keygen_opt_strs+1501)
3932b15cb3dSCy Schubert /** Upper-cased name for the modulus option */
394*09100258SXin LI #define MODULUS_NAME      (ntp_keygen_opt_strs+1515)
3952b15cb3dSCy Schubert /** Name string for the modulus option */
396*09100258SXin LI #define MODULUS_name      (ntp_keygen_opt_strs+1523)
3972b15cb3dSCy Schubert /** Compiled in flag settings for the modulus option */
398ea906c41SOllivier Robert #define MODULUS_FLAGS     (OPTST_DISABLED \
399ea906c41SOllivier Robert         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
400ea906c41SOllivier Robert 
4012b15cb3dSCy Schubert #else   /* disable modulus */
402ea906c41SOllivier Robert #define MODULUS_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
4032b15cb3dSCy Schubert #define MODULUS_NAME      NULL
4042b15cb3dSCy Schubert #define MODULUS_DESC      NULL
4052b15cb3dSCy Schubert #define MODULUS_name      NULL
4062b15cb3dSCy Schubert #endif  /* AUTOKEY */
407ea906c41SOllivier Robert 
4082b15cb3dSCy Schubert /**
409*09100258SXin LI  *  md5key option description:
410*09100258SXin LI  */
411*09100258SXin LI /** Descriptive text for the md5key option */
412*09100258SXin LI #define MD5KEY_DESC      (ntp_keygen_opt_strs+1531)
413*09100258SXin LI /** Upper-cased name for the md5key option */
414*09100258SXin LI #define MD5KEY_NAME      (ntp_keygen_opt_strs+1555)
415*09100258SXin LI /** Name string for the md5key option */
416*09100258SXin LI #define MD5KEY_name      (ntp_keygen_opt_strs+1562)
417*09100258SXin LI /** Compiled in flag settings for the md5key option */
418*09100258SXin LI #define MD5KEY_FLAGS     (OPTST_DISABLED)
419*09100258SXin LI 
420*09100258SXin LI /**
4212b15cb3dSCy Schubert  *  pvt-cert option description:
422ea906c41SOllivier Robert  */
4232b15cb3dSCy Schubert #ifdef AUTOKEY
4242b15cb3dSCy Schubert /** Descriptive text for the pvt-cert option */
425*09100258SXin LI #define PVT_CERT_DESC      (ntp_keygen_opt_strs+1569)
4262b15cb3dSCy Schubert /** Upper-cased name for the pvt-cert option */
427*09100258SXin LI #define PVT_CERT_NAME      (ntp_keygen_opt_strs+1601)
4282b15cb3dSCy Schubert /** Name string for the pvt-cert option */
429*09100258SXin LI #define PVT_CERT_name      (ntp_keygen_opt_strs+1610)
4302b15cb3dSCy Schubert /** Compiled in flag settings for the pvt-cert option */
431ea906c41SOllivier Robert #define PVT_CERT_FLAGS     (OPTST_DISABLED)
432ea906c41SOllivier Robert 
4332b15cb3dSCy Schubert #else   /* disable pvt-cert */
434ea906c41SOllivier Robert #define PVT_CERT_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
4352b15cb3dSCy Schubert #define PVT_CERT_NAME      NULL
4362b15cb3dSCy Schubert #define PVT_CERT_DESC      NULL
4372b15cb3dSCy Schubert #define PVT_CERT_name      NULL
4382b15cb3dSCy Schubert #endif  /* AUTOKEY */
439ea906c41SOllivier Robert 
4402b15cb3dSCy Schubert /**
4412b15cb3dSCy Schubert  *  password option description:
442ea906c41SOllivier Robert  */
4432b15cb3dSCy Schubert #ifdef AUTOKEY
4442b15cb3dSCy Schubert /** Descriptive text for the password option */
445*09100258SXin LI #define PASSWORD_DESC      (ntp_keygen_opt_strs+1619)
4462b15cb3dSCy Schubert /** Upper-cased name for the password option */
447*09100258SXin LI #define PASSWORD_NAME      (ntp_keygen_opt_strs+1642)
4482b15cb3dSCy Schubert /** Name string for the password option */
449*09100258SXin LI #define PASSWORD_name      (ntp_keygen_opt_strs+1651)
4502b15cb3dSCy Schubert /** Compiled in flag settings for the password option */
4512b15cb3dSCy Schubert #define PASSWORD_FLAGS     (OPTST_DISABLED \
452ea906c41SOllivier Robert         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
453ea906c41SOllivier Robert 
4542b15cb3dSCy Schubert #else   /* disable password */
4552b15cb3dSCy Schubert #define PASSWORD_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
4562b15cb3dSCy Schubert #define PASSWORD_NAME      NULL
4572b15cb3dSCy Schubert #define PASSWORD_DESC      NULL
4582b15cb3dSCy Schubert #define PASSWORD_name      NULL
4592b15cb3dSCy Schubert #endif  /* AUTOKEY */
460ea906c41SOllivier Robert 
4612b15cb3dSCy Schubert /**
4622b15cb3dSCy Schubert  *  export-passwd option description:
463ea906c41SOllivier Robert  */
4642b15cb3dSCy Schubert #ifdef AUTOKEY
4652b15cb3dSCy Schubert /** Descriptive text for the export-passwd option */
466*09100258SXin LI #define EXPORT_PASSWD_DESC      (ntp_keygen_opt_strs+1660)
4672b15cb3dSCy Schubert /** Upper-cased name for the export-passwd option */
468*09100258SXin LI #define EXPORT_PASSWD_NAME      (ntp_keygen_opt_strs+1702)
4692b15cb3dSCy Schubert /** Name string for the export-passwd option */
470*09100258SXin LI #define EXPORT_PASSWD_name      (ntp_keygen_opt_strs+1716)
4712b15cb3dSCy Schubert /** Compiled in flag settings for the export-passwd option */
4722b15cb3dSCy Schubert #define EXPORT_PASSWD_FLAGS     (OPTST_DISABLED \
473ea906c41SOllivier Robert         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
474ea906c41SOllivier Robert 
4752b15cb3dSCy Schubert #else   /* disable export-passwd */
4762b15cb3dSCy Schubert #define EXPORT_PASSWD_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
4772b15cb3dSCy Schubert #define EXPORT_PASSWD_NAME      NULL
4782b15cb3dSCy Schubert #define EXPORT_PASSWD_DESC      NULL
4792b15cb3dSCy Schubert #define EXPORT_PASSWD_name      NULL
4802b15cb3dSCy Schubert #endif  /* AUTOKEY */
481ea906c41SOllivier Robert 
4822b15cb3dSCy Schubert /**
4832b15cb3dSCy Schubert  *  subject-name option description:
484ea906c41SOllivier Robert  */
4852b15cb3dSCy Schubert #ifdef AUTOKEY
4862b15cb3dSCy Schubert /** Descriptive text for the subject-name option */
487*09100258SXin LI #define SUBJECT_NAME_DESC      (ntp_keygen_opt_strs+1730)
4882b15cb3dSCy Schubert /** Upper-cased name for the subject-name option */
489*09100258SXin LI #define SUBJECT_NAME_NAME      (ntp_keygen_opt_strs+1765)
4902b15cb3dSCy Schubert /** Name string for the subject-name option */
491*09100258SXin LI #define SUBJECT_NAME_name      (ntp_keygen_opt_strs+1778)
4922b15cb3dSCy Schubert /** Compiled in flag settings for the subject-name option */
493ea906c41SOllivier Robert #define SUBJECT_NAME_FLAGS     (OPTST_DISABLED \
494ea906c41SOllivier Robert         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
495ea906c41SOllivier Robert 
4962b15cb3dSCy Schubert #else   /* disable subject-name */
497ea906c41SOllivier Robert #define SUBJECT_NAME_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
4982b15cb3dSCy Schubert #define SUBJECT_NAME_NAME      NULL
4992b15cb3dSCy Schubert #define SUBJECT_NAME_DESC      NULL
5002b15cb3dSCy Schubert #define SUBJECT_NAME_name      NULL
5012b15cb3dSCy Schubert #endif  /* AUTOKEY */
502ea906c41SOllivier Robert 
5032b15cb3dSCy Schubert /**
504*09100258SXin LI  *  sign-key option description:
505*09100258SXin LI  */
506*09100258SXin LI #ifdef AUTOKEY
507*09100258SXin LI /** Descriptive text for the sign-key option */
508*09100258SXin LI #define SIGN_KEY_DESC      (ntp_keygen_opt_strs+1791)
509*09100258SXin LI /** Upper-cased name for the sign-key option */
510*09100258SXin LI #define SIGN_KEY_NAME      (ntp_keygen_opt_strs+1822)
511*09100258SXin LI /** Name string for the sign-key option */
512*09100258SXin LI #define SIGN_KEY_name      (ntp_keygen_opt_strs+1831)
513*09100258SXin LI /** Compiled in flag settings for the sign-key option */
514*09100258SXin LI #define SIGN_KEY_FLAGS     (OPTST_DISABLED \
515*09100258SXin LI         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
516*09100258SXin LI 
517*09100258SXin LI #else   /* disable sign-key */
518*09100258SXin LI #define SIGN_KEY_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
519*09100258SXin LI #define SIGN_KEY_NAME      NULL
520*09100258SXin LI #define SIGN_KEY_DESC      NULL
521*09100258SXin LI #define SIGN_KEY_name      NULL
522*09100258SXin LI #endif  /* AUTOKEY */
523*09100258SXin LI 
524*09100258SXin LI /**
5252b15cb3dSCy Schubert  *  trusted-cert option description:
526ea906c41SOllivier Robert  */
5272b15cb3dSCy Schubert #ifdef AUTOKEY
5282b15cb3dSCy Schubert /** Descriptive text for the trusted-cert option */
529*09100258SXin LI #define TRUSTED_CERT_DESC      (ntp_keygen_opt_strs+1840)
5302b15cb3dSCy Schubert /** Upper-cased name for the trusted-cert option */
531*09100258SXin LI #define TRUSTED_CERT_NAME      (ntp_keygen_opt_strs+1872)
5322b15cb3dSCy Schubert /** Name string for the trusted-cert option */
533*09100258SXin LI #define TRUSTED_CERT_name      (ntp_keygen_opt_strs+1885)
5342b15cb3dSCy Schubert /** Compiled in flag settings for the trusted-cert option */
535ea906c41SOllivier Robert #define TRUSTED_CERT_FLAGS     (OPTST_DISABLED)
536ea906c41SOllivier Robert 
5372b15cb3dSCy Schubert #else   /* disable trusted-cert */
538ea906c41SOllivier Robert #define TRUSTED_CERT_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
5392b15cb3dSCy Schubert #define TRUSTED_CERT_NAME      NULL
5402b15cb3dSCy Schubert #define TRUSTED_CERT_DESC      NULL
5412b15cb3dSCy Schubert #define TRUSTED_CERT_name      NULL
5422b15cb3dSCy Schubert #endif  /* AUTOKEY */
543ea906c41SOllivier Robert 
5442b15cb3dSCy Schubert /**
5452b15cb3dSCy Schubert  *  mv-params option description:
546ea906c41SOllivier Robert  */
5472b15cb3dSCy Schubert #ifdef AUTOKEY
5482b15cb3dSCy Schubert /** Descriptive text for the mv-params option */
549*09100258SXin LI #define MV_PARAMS_DESC      (ntp_keygen_opt_strs+1898)
5502b15cb3dSCy Schubert /** Upper-cased name for the mv-params option */
551*09100258SXin LI #define MV_PARAMS_NAME      (ntp_keygen_opt_strs+1927)
5522b15cb3dSCy Schubert /** Name string for the mv-params option */
553*09100258SXin LI #define MV_PARAMS_name      (ntp_keygen_opt_strs+1937)
5542b15cb3dSCy Schubert /** Compiled in flag settings for the mv-params option */
555ea906c41SOllivier Robert #define MV_PARAMS_FLAGS     (OPTST_DISABLED \
556ea906c41SOllivier Robert         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
557ea906c41SOllivier Robert 
5582b15cb3dSCy Schubert #else   /* disable mv-params */
559ea906c41SOllivier Robert #define MV_PARAMS_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
5602b15cb3dSCy Schubert #define MV_PARAMS_NAME      NULL
5612b15cb3dSCy Schubert #define MV_PARAMS_DESC      NULL
5622b15cb3dSCy Schubert #define MV_PARAMS_name      NULL
5632b15cb3dSCy Schubert #endif  /* AUTOKEY */
564ea906c41SOllivier Robert 
5652b15cb3dSCy Schubert /**
5662b15cb3dSCy Schubert  *  mv-keys option description:
567ea906c41SOllivier Robert  */
5682b15cb3dSCy Schubert #ifdef AUTOKEY
5692b15cb3dSCy Schubert /** Descriptive text for the mv-keys option */
570*09100258SXin LI #define MV_KEYS_DESC      (ntp_keygen_opt_strs+1947)
5712b15cb3dSCy Schubert /** Upper-cased name for the mv-keys option */
572*09100258SXin LI #define MV_KEYS_NAME      (ntp_keygen_opt_strs+1968)
5732b15cb3dSCy Schubert /** Name string for the mv-keys option */
574*09100258SXin LI #define MV_KEYS_name      (ntp_keygen_opt_strs+1976)
5752b15cb3dSCy Schubert /** Compiled in flag settings for the mv-keys option */
576ea906c41SOllivier Robert #define MV_KEYS_FLAGS     (OPTST_DISABLED \
577ea906c41SOllivier Robert         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
578ea906c41SOllivier Robert 
5792b15cb3dSCy Schubert #else   /* disable mv-keys */
580ea906c41SOllivier Robert #define MV_KEYS_FLAGS     (OPTST_OMITTED | OPTST_NO_INIT)
5812b15cb3dSCy Schubert #define MV_KEYS_NAME      NULL
5822b15cb3dSCy Schubert #define MV_KEYS_DESC      NULL
5832b15cb3dSCy Schubert #define MV_KEYS_name      NULL
5842b15cb3dSCy Schubert #endif  /* AUTOKEY */
585ea906c41SOllivier Robert 
586ea906c41SOllivier Robert /*
587ea906c41SOllivier Robert  *  Help/More_Help/Version option descriptions:
588ea906c41SOllivier Robert  */
589*09100258SXin LI #define HELP_DESC       (ntp_keygen_opt_strs+1984)
590*09100258SXin LI #define HELP_name       (ntp_keygen_opt_strs+2028)
5912b15cb3dSCy Schubert #ifdef HAVE_WORKING_FORK
592*09100258SXin LI #define MORE_HELP_DESC  (ntp_keygen_opt_strs+2033)
593*09100258SXin LI #define MORE_HELP_name  (ntp_keygen_opt_strs+2078)
5942b15cb3dSCy Schubert #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
5952b15cb3dSCy Schubert #else
5962b15cb3dSCy Schubert #define MORE_HELP_DESC  HELP_DESC
5972b15cb3dSCy Schubert #define MORE_HELP_name  HELP_name
5982b15cb3dSCy Schubert #define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
5992b15cb3dSCy Schubert #endif
6002b15cb3dSCy Schubert #ifdef NO_OPTIONAL_OPT_ARGS
6012b15cb3dSCy Schubert #  define VER_FLAGS     (OPTST_IMM | OPTST_NO_INIT)
6022b15cb3dSCy Schubert #else
6032b15cb3dSCy Schubert #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
6042b15cb3dSCy Schubert                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
6052b15cb3dSCy Schubert #endif
606*09100258SXin LI #define VER_DESC        (ntp_keygen_opt_strs+2088)
607*09100258SXin LI #define VER_name        (ntp_keygen_opt_strs+2124)
608*09100258SXin LI #define SAVE_OPTS_DESC  (ntp_keygen_opt_strs+2132)
609*09100258SXin LI #define SAVE_OPTS_name  (ntp_keygen_opt_strs+2171)
610*09100258SXin LI #define LOAD_OPTS_DESC     (ntp_keygen_opt_strs+2181)
611*09100258SXin LI #define LOAD_OPTS_NAME     (ntp_keygen_opt_strs+2213)
612*09100258SXin LI #define NO_LOAD_OPTS_name  (ntp_keygen_opt_strs+2223)
613*09100258SXin LI #define LOAD_OPTS_pfx      (ntp_keygen_opt_strs+2236)
6142b15cb3dSCy Schubert #define LOAD_OPTS_name     (NO_LOAD_OPTS_name + 3)
6152b15cb3dSCy Schubert /**
616ea906c41SOllivier Robert  *  Declare option callback procedures
617ea906c41SOllivier Robert  */
6182b15cb3dSCy Schubert #ifdef AUTOKEY
6192b15cb3dSCy Schubert   static tOptProc doOptImbits;
6202b15cb3dSCy Schubert #else /* not AUTOKEY */
6212b15cb3dSCy Schubert # define doOptImbits NULL
6222b15cb3dSCy Schubert #endif /* def/not AUTOKEY */
6232b15cb3dSCy Schubert #ifdef AUTOKEY
624ea906c41SOllivier Robert   static tOptProc doOptModulus;
6252b15cb3dSCy Schubert #else /* not AUTOKEY */
626ea906c41SOllivier Robert # define doOptModulus NULL
6272b15cb3dSCy Schubert #endif /* def/not AUTOKEY */
628ea906c41SOllivier Robert extern tOptProc
6292b15cb3dSCy Schubert     ntpOptionPrintVersion, optionBooleanVal,      optionNestedVal,
6302b15cb3dSCy Schubert     optionNumericVal,      optionPagedUsage,      optionResetOpt,
6312b15cb3dSCy Schubert     optionStackArg,        optionTimeDate,        optionTimeVal,
6322b15cb3dSCy Schubert     optionUnstackArg,      optionVendorOption;
633ea906c41SOllivier Robert static tOptProc
6342b15cb3dSCy Schubert     doOptDebug_Level, doUsageOpt;
6352b15cb3dSCy Schubert #define VER_PROC        ntpOptionPrintVersion
636ea906c41SOllivier Robert 
6372b15cb3dSCy Schubert /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
6382b15cb3dSCy Schubert /**
6392b15cb3dSCy Schubert  *  Define the ntp-keygen Option Descriptions.
6402b15cb3dSCy Schubert  * This is an array of OPTION_CT entries, one for each
6412b15cb3dSCy Schubert  * option that the ntp-keygen program responds to.
642ea906c41SOllivier Robert  */
643ea906c41SOllivier Robert static tOptDesc optDesc[OPTION_CT] = {
6442b15cb3dSCy Schubert   {  /* entry idx, value */ 0, VALUE_OPT_IMBITS,
6452b15cb3dSCy Schubert      /* equiv idx, value */ 0, VALUE_OPT_IMBITS,
6462b15cb3dSCy Schubert      /* equivalenced to  */ NO_EQUIVALENT,
6472b15cb3dSCy Schubert      /* min, max, act ct */ 0, 1, 0,
6482b15cb3dSCy Schubert      /* opt state flags  */ IMBITS_FLAGS, 0,
6492b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --imbits */
6502b15cb3dSCy Schubert      /* arg list/cookie  */ NULL,
6512b15cb3dSCy Schubert      /* must/cannot opts */ NULL, NULL,
6522b15cb3dSCy Schubert      /* option proc      */ doOptImbits,
6532b15cb3dSCy Schubert      /* desc, NAME, name */ IMBITS_DESC, IMBITS_NAME, IMBITS_name,
6542b15cb3dSCy Schubert      /* disablement strs */ NULL, NULL },
6552b15cb3dSCy Schubert 
6562b15cb3dSCy Schubert   {  /* entry idx, value */ 1, VALUE_OPT_CERTIFICATE,
6572b15cb3dSCy Schubert      /* equiv idx, value */ 1, VALUE_OPT_CERTIFICATE,
658ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
659ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
660ea906c41SOllivier Robert      /* opt state flags  */ CERTIFICATE_FLAGS, 0,
6612b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --certificate */
662ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
663ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
664ea906c41SOllivier Robert      /* option proc      */ NULL,
6652b15cb3dSCy Schubert      /* desc, NAME, name */ CERTIFICATE_DESC, CERTIFICATE_NAME, CERTIFICATE_name,
666ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
667ea906c41SOllivier Robert 
6682b15cb3dSCy Schubert   {  /* entry idx, value */ 2, VALUE_OPT_CIPHER,
6692b15cb3dSCy Schubert      /* equiv idx, value */ 2, VALUE_OPT_CIPHER,
6702b15cb3dSCy Schubert      /* equivalenced to  */ NO_EQUIVALENT,
6712b15cb3dSCy Schubert      /* min, max, act ct */ 0, 1, 0,
6722b15cb3dSCy Schubert      /* opt state flags  */ CIPHER_FLAGS, 0,
6732b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --cipher */
6742b15cb3dSCy Schubert      /* arg list/cookie  */ NULL,
6752b15cb3dSCy Schubert      /* must/cannot opts */ NULL, NULL,
6762b15cb3dSCy Schubert      /* option proc      */ NULL,
6772b15cb3dSCy Schubert      /* desc, NAME, name */ CIPHER_DESC, CIPHER_NAME, CIPHER_name,
6782b15cb3dSCy Schubert      /* disablement strs */ NULL, NULL },
6792b15cb3dSCy Schubert 
6802b15cb3dSCy Schubert   {  /* entry idx, value */ 3, VALUE_OPT_DEBUG_LEVEL,
6812b15cb3dSCy Schubert      /* equiv idx, value */ 3, VALUE_OPT_DEBUG_LEVEL,
682ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
683ea906c41SOllivier Robert      /* min, max, act ct */ 0, NOLIMIT, 0,
684ea906c41SOllivier Robert      /* opt state flags  */ DEBUG_LEVEL_FLAGS, 0,
6852b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --debug-level */
686ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
687ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
6882b15cb3dSCy Schubert      /* option proc      */ doOptDebug_Level,
6892b15cb3dSCy Schubert      /* desc, NAME, name */ DEBUG_LEVEL_DESC, DEBUG_LEVEL_NAME, DEBUG_LEVEL_name,
690ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
691ea906c41SOllivier Robert 
6922b15cb3dSCy Schubert   {  /* entry idx, value */ 4, VALUE_OPT_SET_DEBUG_LEVEL,
6932b15cb3dSCy Schubert      /* equiv idx, value */ 4, VALUE_OPT_SET_DEBUG_LEVEL,
694ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
695ea906c41SOllivier Robert      /* min, max, act ct */ 0, NOLIMIT, 0,
696ea906c41SOllivier Robert      /* opt state flags  */ SET_DEBUG_LEVEL_FLAGS, 0,
6972b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --set-debug-level */
698ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
699ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
7002b15cb3dSCy Schubert      /* option proc      */ optionNumericVal,
7012b15cb3dSCy Schubert      /* desc, NAME, name */ SET_DEBUG_LEVEL_DESC, SET_DEBUG_LEVEL_NAME, SET_DEBUG_LEVEL_name,
702ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
703ea906c41SOllivier Robert 
7042b15cb3dSCy Schubert   {  /* entry idx, value */ 5, VALUE_OPT_ID_KEY,
7052b15cb3dSCy Schubert      /* equiv idx, value */ 5, VALUE_OPT_ID_KEY,
706ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
707ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
708ea906c41SOllivier Robert      /* opt state flags  */ ID_KEY_FLAGS, 0,
7092b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --id-key */
710ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
711ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
712ea906c41SOllivier Robert      /* option proc      */ NULL,
7132b15cb3dSCy Schubert      /* desc, NAME, name */ ID_KEY_DESC, ID_KEY_NAME, ID_KEY_name,
714ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
715ea906c41SOllivier Robert 
7162b15cb3dSCy Schubert   {  /* entry idx, value */ 6, VALUE_OPT_GQ_PARAMS,
7172b15cb3dSCy Schubert      /* equiv idx, value */ 6, VALUE_OPT_GQ_PARAMS,
718ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
719ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
720ea906c41SOllivier Robert      /* opt state flags  */ GQ_PARAMS_FLAGS, 0,
7212b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --gq-params */
722ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
723ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
724ea906c41SOllivier Robert      /* option proc      */ NULL,
7252b15cb3dSCy Schubert      /* desc, NAME, name */ GQ_PARAMS_DESC, GQ_PARAMS_NAME, GQ_PARAMS_name,
726ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
727ea906c41SOllivier Robert 
7282b15cb3dSCy Schubert   {  /* entry idx, value */ 7, VALUE_OPT_HOST_KEY,
7292b15cb3dSCy Schubert      /* equiv idx, value */ 7, VALUE_OPT_HOST_KEY,
730ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
731ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
732ea906c41SOllivier Robert      /* opt state flags  */ HOST_KEY_FLAGS, 0,
7332b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --host-key */
734ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
735ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
736ea906c41SOllivier Robert      /* option proc      */ NULL,
7372b15cb3dSCy Schubert      /* desc, NAME, name */ HOST_KEY_DESC, HOST_KEY_NAME, HOST_KEY_name,
738ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
739ea906c41SOllivier Robert 
7402b15cb3dSCy Schubert   {  /* entry idx, value */ 8, VALUE_OPT_IFFKEY,
7412b15cb3dSCy Schubert      /* equiv idx, value */ 8, VALUE_OPT_IFFKEY,
742ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
743ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
744ea906c41SOllivier Robert      /* opt state flags  */ IFFKEY_FLAGS, 0,
7452b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --iffkey */
746ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
747ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
748ea906c41SOllivier Robert      /* option proc      */ NULL,
7492b15cb3dSCy Schubert      /* desc, NAME, name */ IFFKEY_DESC, IFFKEY_NAME, IFFKEY_name,
750ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
751ea906c41SOllivier Robert 
7522b15cb3dSCy Schubert   {  /* entry idx, value */ 9, VALUE_OPT_IDENT,
7532b15cb3dSCy Schubert      /* equiv idx, value */ 9, VALUE_OPT_IDENT,
754ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
755ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
7562b15cb3dSCy Schubert      /* opt state flags  */ IDENT_FLAGS, 0,
7572b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --ident */
758ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
759ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
760ea906c41SOllivier Robert      /* option proc      */ NULL,
7612b15cb3dSCy Schubert      /* desc, NAME, name */ IDENT_DESC, IDENT_NAME, IDENT_name,
762ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
763ea906c41SOllivier Robert 
7642b15cb3dSCy Schubert   {  /* entry idx, value */ 10, VALUE_OPT_LIFETIME,
7652b15cb3dSCy Schubert      /* equiv idx, value */ 10, VALUE_OPT_LIFETIME,
7662b15cb3dSCy Schubert      /* equivalenced to  */ NO_EQUIVALENT,
7672b15cb3dSCy Schubert      /* min, max, act ct */ 0, 1, 0,
7682b15cb3dSCy Schubert      /* opt state flags  */ LIFETIME_FLAGS, 0,
7692b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --lifetime */
7702b15cb3dSCy Schubert      /* arg list/cookie  */ NULL,
7712b15cb3dSCy Schubert      /* must/cannot opts */ NULL, NULL,
7722b15cb3dSCy Schubert      /* option proc      */ optionNumericVal,
7732b15cb3dSCy Schubert      /* desc, NAME, name */ LIFETIME_DESC, LIFETIME_NAME, LIFETIME_name,
7742b15cb3dSCy Schubert      /* disablement strs */ NULL, NULL },
7752b15cb3dSCy Schubert 
776*09100258SXin LI   {  /* entry idx, value */ 11, VALUE_OPT_MODULUS,
777*09100258SXin LI      /* equiv idx, value */ 11, VALUE_OPT_MODULUS,
778ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
779ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
780ea906c41SOllivier Robert      /* opt state flags  */ MODULUS_FLAGS, 0,
7812b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --modulus */
782ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
783ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
784ea906c41SOllivier Robert      /* option proc      */ doOptModulus,
7852b15cb3dSCy Schubert      /* desc, NAME, name */ MODULUS_DESC, MODULUS_NAME, MODULUS_name,
786ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
787ea906c41SOllivier Robert 
788*09100258SXin LI   {  /* entry idx, value */ 12, VALUE_OPT_MD5KEY,
789*09100258SXin LI      /* equiv idx, value */ 12, VALUE_OPT_MD5KEY,
790*09100258SXin LI      /* equivalenced to  */ NO_EQUIVALENT,
791*09100258SXin LI      /* min, max, act ct */ 0, 1, 0,
792*09100258SXin LI      /* opt state flags  */ MD5KEY_FLAGS, 0,
793*09100258SXin LI      /* last opt argumnt */ { NULL }, /* --md5key */
794*09100258SXin LI      /* arg list/cookie  */ NULL,
795*09100258SXin LI      /* must/cannot opts */ NULL, NULL,
796*09100258SXin LI      /* option proc      */ NULL,
797*09100258SXin LI      /* desc, NAME, name */ MD5KEY_DESC, MD5KEY_NAME, MD5KEY_name,
798*09100258SXin LI      /* disablement strs */ NULL, NULL },
799*09100258SXin LI 
8002b15cb3dSCy Schubert   {  /* entry idx, value */ 13, VALUE_OPT_PVT_CERT,
8012b15cb3dSCy Schubert      /* equiv idx, value */ 13, VALUE_OPT_PVT_CERT,
802ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
803ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
804ea906c41SOllivier Robert      /* opt state flags  */ PVT_CERT_FLAGS, 0,
8052b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --pvt-cert */
806ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
807ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
808ea906c41SOllivier Robert      /* option proc      */ NULL,
8092b15cb3dSCy Schubert      /* desc, NAME, name */ PVT_CERT_DESC, PVT_CERT_NAME, PVT_CERT_name,
810ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
811ea906c41SOllivier Robert 
8122b15cb3dSCy Schubert   {  /* entry idx, value */ 14, VALUE_OPT_PASSWORD,
8132b15cb3dSCy Schubert      /* equiv idx, value */ 14, VALUE_OPT_PASSWORD,
814ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
815ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
8162b15cb3dSCy Schubert      /* opt state flags  */ PASSWORD_FLAGS, 0,
8172b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --password */
818ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
819ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
820ea906c41SOllivier Robert      /* option proc      */ NULL,
8212b15cb3dSCy Schubert      /* desc, NAME, name */ PASSWORD_DESC, PASSWORD_NAME, PASSWORD_name,
822ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
823ea906c41SOllivier Robert 
8242b15cb3dSCy Schubert   {  /* entry idx, value */ 15, VALUE_OPT_EXPORT_PASSWD,
8252b15cb3dSCy Schubert      /* equiv idx, value */ 15, VALUE_OPT_EXPORT_PASSWD,
826ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
827ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
8282b15cb3dSCy Schubert      /* opt state flags  */ EXPORT_PASSWD_FLAGS, 0,
8292b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --export-passwd */
830ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
831ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
832ea906c41SOllivier Robert      /* option proc      */ NULL,
8332b15cb3dSCy Schubert      /* desc, NAME, name */ EXPORT_PASSWD_DESC, EXPORT_PASSWD_NAME, EXPORT_PASSWD_name,
834ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
835ea906c41SOllivier Robert 
836*09100258SXin LI   {  /* entry idx, value */ 16, VALUE_OPT_SUBJECT_NAME,
837*09100258SXin LI      /* equiv idx, value */ 16, VALUE_OPT_SUBJECT_NAME,
838ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
839ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
840ea906c41SOllivier Robert      /* opt state flags  */ SUBJECT_NAME_FLAGS, 0,
8412b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --subject-name */
842ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
843ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
844ea906c41SOllivier Robert      /* option proc      */ NULL,
8452b15cb3dSCy Schubert      /* desc, NAME, name */ SUBJECT_NAME_DESC, SUBJECT_NAME_NAME, SUBJECT_NAME_name,
846ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
847ea906c41SOllivier Robert 
848*09100258SXin LI   {  /* entry idx, value */ 17, VALUE_OPT_SIGN_KEY,
849*09100258SXin LI      /* equiv idx, value */ 17, VALUE_OPT_SIGN_KEY,
850*09100258SXin LI      /* equivalenced to  */ NO_EQUIVALENT,
851*09100258SXin LI      /* min, max, act ct */ 0, 1, 0,
852*09100258SXin LI      /* opt state flags  */ SIGN_KEY_FLAGS, 0,
853*09100258SXin LI      /* last opt argumnt */ { NULL }, /* --sign-key */
854*09100258SXin LI      /* arg list/cookie  */ NULL,
855*09100258SXin LI      /* must/cannot opts */ NULL, NULL,
856*09100258SXin LI      /* option proc      */ NULL,
857*09100258SXin LI      /* desc, NAME, name */ SIGN_KEY_DESC, SIGN_KEY_NAME, SIGN_KEY_name,
858*09100258SXin LI      /* disablement strs */ NULL, NULL },
859*09100258SXin LI 
8602b15cb3dSCy Schubert   {  /* entry idx, value */ 18, VALUE_OPT_TRUSTED_CERT,
8612b15cb3dSCy Schubert      /* equiv idx, value */ 18, VALUE_OPT_TRUSTED_CERT,
862ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
863ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
864ea906c41SOllivier Robert      /* opt state flags  */ TRUSTED_CERT_FLAGS, 0,
8652b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --trusted-cert */
866ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
867ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
868ea906c41SOllivier Robert      /* option proc      */ NULL,
8692b15cb3dSCy Schubert      /* desc, NAME, name */ TRUSTED_CERT_DESC, TRUSTED_CERT_NAME, TRUSTED_CERT_name,
870ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
871ea906c41SOllivier Robert 
8722b15cb3dSCy Schubert   {  /* entry idx, value */ 19, VALUE_OPT_MV_PARAMS,
8732b15cb3dSCy Schubert      /* equiv idx, value */ 19, VALUE_OPT_MV_PARAMS,
874ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
875ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
876ea906c41SOllivier Robert      /* opt state flags  */ MV_PARAMS_FLAGS, 0,
8772b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --mv-params */
878ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
879ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
880ea906c41SOllivier Robert      /* option proc      */ optionNumericVal,
8812b15cb3dSCy Schubert      /* desc, NAME, name */ MV_PARAMS_DESC, MV_PARAMS_NAME, MV_PARAMS_name,
882ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
883ea906c41SOllivier Robert 
8842b15cb3dSCy Schubert   {  /* entry idx, value */ 20, VALUE_OPT_MV_KEYS,
8852b15cb3dSCy Schubert      /* equiv idx, value */ 20, VALUE_OPT_MV_KEYS,
886ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
887ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
888ea906c41SOllivier Robert      /* opt state flags  */ MV_KEYS_FLAGS, 0,
8892b15cb3dSCy Schubert      /* last opt argumnt */ { NULL }, /* --mv-keys */
890ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
891ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
892ea906c41SOllivier Robert      /* option proc      */ optionNumericVal,
8932b15cb3dSCy Schubert      /* desc, NAME, name */ MV_KEYS_DESC, MV_KEYS_NAME, MV_KEYS_name,
894ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
895ea906c41SOllivier Robert 
896ea906c41SOllivier Robert   {  /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
8972b15cb3dSCy Schubert      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_VERSION,
898ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
899ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
9002b15cb3dSCy Schubert      /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
901ea906c41SOllivier Robert      /* last opt argumnt */ { NULL },
902ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
903ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
9042b15cb3dSCy Schubert      /* option proc      */ VER_PROC,
9052b15cb3dSCy Schubert      /* desc, NAME, name */ VER_DESC, NULL, VER_name,
906ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
907ea906c41SOllivier Robert 
908ea906c41SOllivier Robert 
909ea906c41SOllivier Robert 
910ea906c41SOllivier Robert   {  /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
9112b15cb3dSCy Schubert      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_HELP,
912ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
913ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
9142b15cb3dSCy Schubert      /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
915ea906c41SOllivier Robert      /* last opt argumnt */ { NULL },
916ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
917ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
918ea906c41SOllivier Robert      /* option proc      */ doUsageOpt,
9192b15cb3dSCy Schubert      /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
920ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
921ea906c41SOllivier Robert 
922ea906c41SOllivier Robert   {  /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
9232b15cb3dSCy Schubert      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
924ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
925ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
9262b15cb3dSCy Schubert      /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
927ea906c41SOllivier Robert      /* last opt argumnt */ { NULL },
928ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
929ea906c41SOllivier Robert      /* must/cannot opts */ NULL,  NULL,
930ea906c41SOllivier Robert      /* option proc      */ optionPagedUsage,
9312b15cb3dSCy Schubert      /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
932ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
933ea906c41SOllivier Robert 
934ea906c41SOllivier Robert   {  /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
9352b15cb3dSCy Schubert      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_SAVE_OPTS,
936ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
937ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
938ea906c41SOllivier Robert      /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
9392b15cb3dSCy Schubert                        | OPTST_ARG_OPTIONAL | OPTST_NO_INIT, AOUSE_SAVE_OPTS,
940ea906c41SOllivier Robert      /* last opt argumnt */ { NULL },
941ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
942ea906c41SOllivier Robert      /* must/cannot opts */ NULL,  NULL,
943ea906c41SOllivier Robert      /* option proc      */ NULL,
9442b15cb3dSCy Schubert      /* desc, NAME, name */ SAVE_OPTS_DESC, NULL, SAVE_OPTS_name,
945ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
946ea906c41SOllivier Robert 
947ea906c41SOllivier Robert   {  /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
9482b15cb3dSCy Schubert      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_LOAD_OPTS,
949ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
950ea906c41SOllivier Robert      /* min, max, act ct */ 0, NOLIMIT, 0,
9512b15cb3dSCy Schubert      /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
9522b15cb3dSCy Schubert 			  | OPTST_DISABLE_IMM, AOUSE_LOAD_OPTS,
953ea906c41SOllivier Robert      /* last opt argumnt */ { NULL },
954ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
955ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
956ea906c41SOllivier Robert      /* option proc      */ optionLoadOpt,
9572b15cb3dSCy Schubert      /* desc, NAME, name */ LOAD_OPTS_DESC, LOAD_OPTS_NAME, LOAD_OPTS_name,
9582b15cb3dSCy Schubert      /* disablement strs */ NO_LOAD_OPTS_name, LOAD_OPTS_pfx }
959ea906c41SOllivier Robert };
960ea906c41SOllivier Robert 
961ea906c41SOllivier Robert 
9622b15cb3dSCy Schubert /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
9632b15cb3dSCy Schubert /** Reference to the upper cased version of ntp-keygen. */
964*09100258SXin LI #define zPROGNAME       (ntp_keygen_opt_strs+2239)
9652b15cb3dSCy Schubert /** Reference to the title line for ntp-keygen usage. */
966*09100258SXin LI #define zUsageTitle     (ntp_keygen_opt_strs+2250)
9672b15cb3dSCy Schubert /** ntp-keygen configuration file name. */
968*09100258SXin LI #define zRcName         (ntp_keygen_opt_strs+2373)
9692b15cb3dSCy Schubert /** Directories to search for ntp-keygen config files. */
9702b15cb3dSCy Schubert static char const * const apzHomeList[3] = {
971*09100258SXin LI     ntp_keygen_opt_strs+2365,
972*09100258SXin LI     ntp_keygen_opt_strs+2371,
9732b15cb3dSCy Schubert     NULL };
9742b15cb3dSCy Schubert /** The ntp-keygen program bug email address. */
975*09100258SXin LI #define zBugsAddr       (ntp_keygen_opt_strs+2380)
9762b15cb3dSCy Schubert /** Clarification/explanation of what ntp-keygen does. */
977*09100258SXin LI #define zExplain        (ntp_keygen_opt_strs+2414)
9782b15cb3dSCy Schubert /** Extra detail explaining what ntp-keygen does. */
9792b15cb3dSCy Schubert #define zDetail         (NULL)
9802b15cb3dSCy Schubert /** The full version string for ntp-keygen. */
981*09100258SXin LI #define zFullVersion    (ntp_keygen_opt_strs+2416)
9822b15cb3dSCy Schubert /* extracted from optcode.tlib near line 364 */
983ea906c41SOllivier Robert 
984ea906c41SOllivier Robert #if defined(ENABLE_NLS)
985ea906c41SOllivier Robert # define OPTPROC_BASE OPTPROC_TRANSLATE
986ea906c41SOllivier Robert   static tOptionXlateProc translate_option_strings;
987ea906c41SOllivier Robert #else
988ea906c41SOllivier Robert # define OPTPROC_BASE OPTPROC_NONE
989ea906c41SOllivier Robert # define translate_option_strings NULL
990ea906c41SOllivier Robert #endif /* ENABLE_NLS */
991ea906c41SOllivier Robert 
9922b15cb3dSCy Schubert #define ntp_keygen_full_usage (NULL)
9932b15cb3dSCy Schubert #define ntp_keygen_short_usage (NULL)
9942b15cb3dSCy Schubert 
9952b15cb3dSCy Schubert #endif /* not defined __doxygen__ */
9962b15cb3dSCy Schubert 
9972b15cb3dSCy Schubert /*
9982b15cb3dSCy Schubert  *  Create the static procedure(s) declared above.
9992b15cb3dSCy Schubert  */
10002b15cb3dSCy Schubert /**
10012b15cb3dSCy Schubert  * The callout function that invokes the optionUsage function.
10022b15cb3dSCy Schubert  *
10032b15cb3dSCy Schubert  * @param[in] opts the AutoOpts option description structure
10042b15cb3dSCy Schubert  * @param[in] od   the descriptor for the "help" (usage) option.
10052b15cb3dSCy Schubert  * @noreturn
10062b15cb3dSCy Schubert  */
10072b15cb3dSCy Schubert static void
10082b15cb3dSCy Schubert doUsageOpt(tOptions * opts, tOptDesc * od)
10092b15cb3dSCy Schubert {
10102b15cb3dSCy Schubert     int ex_code;
10112b15cb3dSCy Schubert     ex_code = NTP_KEYGEN_EXIT_SUCCESS;
10122b15cb3dSCy Schubert     optionUsage(&ntp_keygenOptions, ex_code);
10132b15cb3dSCy Schubert     /* NOTREACHED */
10142b15cb3dSCy Schubert     exit(1);
10152b15cb3dSCy Schubert     (void)opts;
10162b15cb3dSCy Schubert     (void)od;
10172b15cb3dSCy Schubert }
10182b15cb3dSCy Schubert 
10192b15cb3dSCy Schubert /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
10202b15cb3dSCy Schubert /**
10212b15cb3dSCy Schubert  * Code to handle the imbits option, when AUTOKEY is #define-d.
10222b15cb3dSCy Schubert  * The number of bits in the identity modulus.  The default is 256.
10232b15cb3dSCy Schubert  * @param[in] pOptions the ntp-keygen options data structure
10242b15cb3dSCy Schubert  * @param[in,out] pOptDesc the option descriptor for this option.
10252b15cb3dSCy Schubert  */
10262b15cb3dSCy Schubert #ifdef AUTOKEY
10272b15cb3dSCy Schubert static void
10282b15cb3dSCy Schubert doOptImbits(tOptions* pOptions, tOptDesc* pOptDesc)
10292b15cb3dSCy Schubert {
10302b15cb3dSCy Schubert     static struct {long rmin, rmax;} const rng[1] = {
10312b15cb3dSCy Schubert         { 256, 2048 } };
10322b15cb3dSCy Schubert     int  ix;
10332b15cb3dSCy Schubert 
10342b15cb3dSCy Schubert     if (pOptions <= OPTPROC_EMIT_LIMIT)
10352b15cb3dSCy Schubert         goto emit_ranges;
10362b15cb3dSCy Schubert     optionNumericVal(pOptions, pOptDesc);
10372b15cb3dSCy Schubert 
10382b15cb3dSCy Schubert     for (ix = 0; ix < 1; ix++) {
10392b15cb3dSCy Schubert         if (pOptDesc->optArg.argInt < rng[ix].rmin)
10402b15cb3dSCy Schubert             continue;  /* ranges need not be ordered. */
10412b15cb3dSCy Schubert         if (pOptDesc->optArg.argInt == rng[ix].rmin)
10422b15cb3dSCy Schubert             return;
10432b15cb3dSCy Schubert         if (rng[ix].rmax == LONG_MIN)
10442b15cb3dSCy Schubert             continue;
10452b15cb3dSCy Schubert         if (pOptDesc->optArg.argInt <= rng[ix].rmax)
10462b15cb3dSCy Schubert             return;
10472b15cb3dSCy Schubert     }
10482b15cb3dSCy Schubert 
10492b15cb3dSCy Schubert     option_usage_fp = stderr;
10502b15cb3dSCy Schubert 
10512b15cb3dSCy Schubert  emit_ranges:
1052276da39aSCy Schubert optionShowRange(pOptions, pOptDesc, VOIDP(rng), 1);
10532b15cb3dSCy Schubert }
10542b15cb3dSCy Schubert #endif /* defined AUTOKEY */
10552b15cb3dSCy Schubert 
10562b15cb3dSCy Schubert /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
10572b15cb3dSCy Schubert /**
10582b15cb3dSCy Schubert  * Code to handle the debug-level option.
10592b15cb3dSCy Schubert  *
10602b15cb3dSCy Schubert  * @param[in] pOptions the ntp-keygen options data structure
10612b15cb3dSCy Schubert  * @param[in,out] pOptDesc the option descriptor for this option.
10622b15cb3dSCy Schubert  */
10632b15cb3dSCy Schubert static void
10642b15cb3dSCy Schubert doOptDebug_Level(tOptions* pOptions, tOptDesc* pOptDesc)
10652b15cb3dSCy Schubert {
10662b15cb3dSCy Schubert     /*
10672b15cb3dSCy Schubert      * Be sure the flag-code[0] handles special values for the options pointer
10682b15cb3dSCy Schubert      * viz. (poptions <= OPTPROC_EMIT_LIMIT) *and also* the special flag bit
10692b15cb3dSCy Schubert      * ((poptdesc->fOptState & OPTST_RESET) != 0) telling the option to
10702b15cb3dSCy Schubert      * reset its state.
10712b15cb3dSCy Schubert      */
10722b15cb3dSCy Schubert     /* extracted from debug-opt.def, line 15 */
10732b15cb3dSCy Schubert OPT_VALUE_SET_DEBUG_LEVEL++;
10742b15cb3dSCy Schubert     (void)pOptDesc;
10752b15cb3dSCy Schubert     (void)pOptions;
10762b15cb3dSCy Schubert }
10772b15cb3dSCy Schubert 
10782b15cb3dSCy Schubert /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
10792b15cb3dSCy Schubert /**
10802b15cb3dSCy Schubert  * Code to handle the modulus option, when AUTOKEY is #define-d.
10812b15cb3dSCy Schubert  * The number of bits in the prime modulus.  The default is 512.
10822b15cb3dSCy Schubert  * @param[in] pOptions the ntp-keygen options data structure
10832b15cb3dSCy Schubert  * @param[in,out] pOptDesc the option descriptor for this option.
10842b15cb3dSCy Schubert  */
10852b15cb3dSCy Schubert #ifdef AUTOKEY
10862b15cb3dSCy Schubert static void
10872b15cb3dSCy Schubert doOptModulus(tOptions* pOptions, tOptDesc* pOptDesc)
10882b15cb3dSCy Schubert {
10892b15cb3dSCy Schubert     static struct {long rmin, rmax;} const rng[1] = {
10902b15cb3dSCy Schubert         { 256, 2048 } };
10912b15cb3dSCy Schubert     int  ix;
10922b15cb3dSCy Schubert 
10932b15cb3dSCy Schubert     if (pOptions <= OPTPROC_EMIT_LIMIT)
10942b15cb3dSCy Schubert         goto emit_ranges;
10952b15cb3dSCy Schubert     optionNumericVal(pOptions, pOptDesc);
10962b15cb3dSCy Schubert 
10972b15cb3dSCy Schubert     for (ix = 0; ix < 1; ix++) {
10982b15cb3dSCy Schubert         if (pOptDesc->optArg.argInt < rng[ix].rmin)
10992b15cb3dSCy Schubert             continue;  /* ranges need not be ordered. */
11002b15cb3dSCy Schubert         if (pOptDesc->optArg.argInt == rng[ix].rmin)
11012b15cb3dSCy Schubert             return;
11022b15cb3dSCy Schubert         if (rng[ix].rmax == LONG_MIN)
11032b15cb3dSCy Schubert             continue;
11042b15cb3dSCy Schubert         if (pOptDesc->optArg.argInt <= rng[ix].rmax)
11052b15cb3dSCy Schubert             return;
11062b15cb3dSCy Schubert     }
11072b15cb3dSCy Schubert 
11082b15cb3dSCy Schubert     option_usage_fp = stderr;
11092b15cb3dSCy Schubert 
11102b15cb3dSCy Schubert  emit_ranges:
1111276da39aSCy Schubert optionShowRange(pOptions, pOptDesc, VOIDP(rng), 1);
11122b15cb3dSCy Schubert }
11132b15cb3dSCy Schubert #endif /* defined AUTOKEY */
1114276da39aSCy Schubert /* extracted from optmain.tlib near line 1250 */
11152b15cb3dSCy Schubert 
11162b15cb3dSCy Schubert /**
11172b15cb3dSCy Schubert  * The directory containing the data associated with ntp-keygen.
11182b15cb3dSCy Schubert  */
11192b15cb3dSCy Schubert #ifndef  PKGDATADIR
11202b15cb3dSCy Schubert # define PKGDATADIR ""
11212b15cb3dSCy Schubert #endif
11222b15cb3dSCy Schubert 
11232b15cb3dSCy Schubert /**
11242b15cb3dSCy Schubert  * Information about the person or institution that packaged ntp-keygen
11252b15cb3dSCy Schubert  * for the current distribution.
11262b15cb3dSCy Schubert  */
11272b15cb3dSCy Schubert #ifndef  WITH_PACKAGER
11282b15cb3dSCy Schubert # define ntp_keygen_packager_info NULL
11292b15cb3dSCy Schubert #else
11302b15cb3dSCy Schubert /** Packager information for ntp-keygen. */
11312b15cb3dSCy Schubert static char const ntp_keygen_packager_info[] =
11322b15cb3dSCy Schubert     "Packaged by " WITH_PACKAGER
11332b15cb3dSCy Schubert 
11342b15cb3dSCy Schubert # ifdef WITH_PACKAGER_VERSION
11352b15cb3dSCy Schubert         " ("WITH_PACKAGER_VERSION")"
11362b15cb3dSCy Schubert # endif
11372b15cb3dSCy Schubert 
11382b15cb3dSCy Schubert # ifdef WITH_PACKAGER_BUG_REPORTS
11392b15cb3dSCy Schubert     "\nReport ntp_keygen bugs to " WITH_PACKAGER_BUG_REPORTS
11402b15cb3dSCy Schubert # endif
11412b15cb3dSCy Schubert     "\n";
11422b15cb3dSCy Schubert #endif
11432b15cb3dSCy Schubert #ifndef __doxygen__
11442b15cb3dSCy Schubert 
11452b15cb3dSCy Schubert #endif /* __doxygen__ */
11462b15cb3dSCy Schubert /**
11472b15cb3dSCy Schubert  * The option definitions for ntp-keygen.  The one structure that
11482b15cb3dSCy Schubert  * binds them all.
11492b15cb3dSCy Schubert  */
1150ea906c41SOllivier Robert tOptions ntp_keygenOptions = {
1151ea906c41SOllivier Robert     OPTIONS_STRUCT_VERSION,
1152ea906c41SOllivier Robert     0, NULL,                    /* original argc + argv    */
1153ea906c41SOllivier Robert     ( OPTPROC_BASE
1154ea906c41SOllivier Robert     + OPTPROC_ERRSTOP
1155ea906c41SOllivier Robert     + OPTPROC_SHORTOPT
1156ea906c41SOllivier Robert     + OPTPROC_LONGOPT
1157ea906c41SOllivier Robert     + OPTPROC_NO_REQ_OPT
1158ea906c41SOllivier Robert     + OPTPROC_ENVIRON
1159ea906c41SOllivier Robert     + OPTPROC_NO_ARGS
11602b15cb3dSCy Schubert     + OPTPROC_MISUSE ),
1161ea906c41SOllivier Robert     0, NULL,                    /* current option index, current option */
1162ea906c41SOllivier Robert     NULL,         NULL,         zPROGNAME,
11632b15cb3dSCy Schubert     zRcName,      zCopyright,   zLicenseDescrip,
1164ea906c41SOllivier Robert     zFullVersion, apzHomeList,  zUsageTitle,
1165ea906c41SOllivier Robert     zExplain,     zDetail,      optDesc,
1166ea906c41SOllivier Robert     zBugsAddr,                  /* address to send bugs to */
1167ea906c41SOllivier Robert     NULL, NULL,                 /* extensions/saved state  */
1168ea906c41SOllivier Robert     optionUsage, /* usage procedure */
1169ea906c41SOllivier Robert     translate_option_strings,   /* translation procedure */
1170ea906c41SOllivier Robert     /*
1171ea906c41SOllivier Robert      *  Indexes to special options
1172ea906c41SOllivier Robert      */
11732b15cb3dSCy Schubert     { INDEX_OPT_MORE_HELP, /* more-help option index */
11742b15cb3dSCy Schubert       INDEX_OPT_SAVE_OPTS, /* save option index */
11752b15cb3dSCy Schubert       NO_EQUIVALENT, /* '-#' option index */
1176ea906c41SOllivier Robert       NO_EQUIVALENT /* index of default opt */
1177ea906c41SOllivier Robert     },
11782b15cb3dSCy Schubert     26 /* full option count */, 21 /* user option count */,
11792b15cb3dSCy Schubert     ntp_keygen_full_usage, ntp_keygen_short_usage,
11802b15cb3dSCy Schubert     NULL, NULL,
11812b15cb3dSCy Schubert     PKGDATADIR, ntp_keygen_packager_info
1182ea906c41SOllivier Robert };
1183ea906c41SOllivier Robert 
1184ea906c41SOllivier Robert #if ENABLE_NLS
11852b15cb3dSCy Schubert /**
11862b15cb3dSCy Schubert  * This code is designed to translate translatable option text for the
11872b15cb3dSCy Schubert  * ntp-keygen program.  These translations happen upon entry
11882b15cb3dSCy Schubert  * to optionProcess().
11892b15cb3dSCy Schubert  */
1190ea906c41SOllivier Robert #include <stdio.h>
1191ea906c41SOllivier Robert #include <stdlib.h>
1192ea906c41SOllivier Robert #include <string.h>
1193ea906c41SOllivier Robert #include <unistd.h>
11942b15cb3dSCy Schubert #ifdef HAVE_DCGETTEXT
11952b15cb3dSCy Schubert # include <gettext.h>
11962b15cb3dSCy Schubert #endif
1197ea906c41SOllivier Robert #include <autoopts/usage-txt.h>
1198ea906c41SOllivier Robert 
1199ea906c41SOllivier Robert static char * AO_gettext(char const * pz);
1200ea906c41SOllivier Robert static void   coerce_it(void ** s);
1201ea906c41SOllivier Robert 
12022b15cb3dSCy Schubert /**
12032b15cb3dSCy Schubert  * AutoGen specific wrapper function for gettext.  It relies on the macro _()
12042b15cb3dSCy Schubert  * to convert from English to the target language, then strdup-duplicates the
12052b15cb3dSCy Schubert  * result string.  It tries the "libopts" domain first, then whatever has been
12062b15cb3dSCy Schubert  * set via the \a textdomain(3) call.
12072b15cb3dSCy Schubert  *
12082b15cb3dSCy Schubert  * @param[in] pz the input text used as a lookup key.
12092b15cb3dSCy Schubert  * @returns the translated text (if there is one),
12102b15cb3dSCy Schubert  *   or the original text (if not).
12112b15cb3dSCy Schubert  */
1212ea906c41SOllivier Robert static char *
1213ea906c41SOllivier Robert AO_gettext(char const * pz)
1214ea906c41SOllivier Robert {
12152b15cb3dSCy Schubert     char * res;
1216ea906c41SOllivier Robert     if (pz == NULL)
1217ea906c41SOllivier Robert         return NULL;
12182b15cb3dSCy Schubert #ifdef HAVE_DCGETTEXT
1219ea906c41SOllivier Robert     /*
12202b15cb3dSCy Schubert      * While processing the option_xlateable_txt data, try to use the
12212b15cb3dSCy Schubert      * "libopts" domain.  Once we switch to the option descriptor data,
12222b15cb3dSCy Schubert      * do *not* use that domain.
12232b15cb3dSCy Schubert      */
12242b15cb3dSCy Schubert     if (option_xlateable_txt.field_ct != 0) {
12252b15cb3dSCy Schubert         res = dgettext("libopts", pz);
12262b15cb3dSCy Schubert         if (res == pz)
1227276da39aSCy Schubert             res = (char *)VOIDP(_(pz));
12282b15cb3dSCy Schubert     } else
1229276da39aSCy Schubert         res = (char *)VOIDP(_(pz));
12302b15cb3dSCy Schubert #else
1231276da39aSCy Schubert     res = (char *)VOIDP(_(pz));
12322b15cb3dSCy Schubert #endif
12332b15cb3dSCy Schubert     if (res == pz)
12342b15cb3dSCy Schubert         return res;
12352b15cb3dSCy Schubert     res = strdup(res);
12362b15cb3dSCy Schubert     if (res == NULL) {
12372b15cb3dSCy Schubert         fputs(_("No memory for duping translated strings\n"), stderr);
12382b15cb3dSCy Schubert         exit(NTP_KEYGEN_EXIT_FAILURE);
12392b15cb3dSCy Schubert     }
12402b15cb3dSCy Schubert     return res;
12412b15cb3dSCy Schubert }
12422b15cb3dSCy Schubert 
12432b15cb3dSCy Schubert /**
12442b15cb3dSCy Schubert  * All the pointers we use are marked "* const", but they are stored in
12452b15cb3dSCy Schubert  * writable memory.  Coerce the mutability and set the pointer.
12462b15cb3dSCy Schubert  */
12472b15cb3dSCy Schubert static void coerce_it(void ** s) { *s = AO_gettext(*s);
12482b15cb3dSCy Schubert }
12492b15cb3dSCy Schubert 
12502b15cb3dSCy Schubert /**
12512b15cb3dSCy Schubert  * Translate all the translatable strings in the ntp_keygenOptions
12522b15cb3dSCy Schubert  * structure defined above.  This is done only once.
1253ea906c41SOllivier Robert  */
1254ea906c41SOllivier Robert static void
1255ea906c41SOllivier Robert translate_option_strings(void)
1256ea906c41SOllivier Robert {
12572b15cb3dSCy Schubert     tOptions * const opts = &ntp_keygenOptions;
12582b15cb3dSCy Schubert 
1259ea906c41SOllivier Robert     /*
1260ea906c41SOllivier Robert      *  Guard against re-translation.  It won't work.  The strings will have
1261ea906c41SOllivier Robert      *  been changed by the first pass through this code.  One shot only.
1262ea906c41SOllivier Robert      */
12632b15cb3dSCy Schubert     if (option_xlateable_txt.field_ct != 0) {
1264ea906c41SOllivier Robert         /*
12652b15cb3dSCy Schubert          *  Do the translations.  The first pointer follows the field count
12662b15cb3dSCy Schubert          *  field.  The field count field is the size of a pointer.
1267ea906c41SOllivier Robert          */
1268276da39aSCy Schubert         char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
12692b15cb3dSCy Schubert         int     ix  = option_xlateable_txt.field_ct;
1270ea906c41SOllivier Robert 
1271ea906c41SOllivier Robert         do {
12722b15cb3dSCy Schubert             ppz++; /* skip over field_ct */
1273ea906c41SOllivier Robert             *ppz = AO_gettext(*ppz);
1274ea906c41SOllivier Robert         } while (--ix > 0);
12752b15cb3dSCy Schubert         /* prevent re-translation and disable "libopts" domain lookup */
12762b15cb3dSCy Schubert         option_xlateable_txt.field_ct = 0;
1277ea906c41SOllivier Robert 
1278276da39aSCy Schubert         coerce_it(VOIDP(&(opts->pzCopyright)));
1279276da39aSCy Schubert         coerce_it(VOIDP(&(opts->pzCopyNotice)));
1280276da39aSCy Schubert         coerce_it(VOIDP(&(opts->pzFullVersion)));
1281276da39aSCy Schubert         coerce_it(VOIDP(&(opts->pzUsageTitle)));
1282276da39aSCy Schubert         coerce_it(VOIDP(&(opts->pzExplain)));
1283276da39aSCy Schubert         coerce_it(VOIDP(&(opts->pzDetail)));
1284ea906c41SOllivier Robert         {
12852b15cb3dSCy Schubert             tOptDesc * od = opts->pOptDesc;
12862b15cb3dSCy Schubert             for (ix = opts->optCt; ix > 0; ix--, od++)
1287276da39aSCy Schubert                 coerce_it(VOIDP(&(od->pzText)));
1288ea906c41SOllivier Robert         }
1289ea906c41SOllivier Robert     }
1290ea906c41SOllivier Robert }
1291ea906c41SOllivier Robert #endif /* ENABLE_NLS */
1292ea906c41SOllivier Robert 
12932b15cb3dSCy Schubert #ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
12942b15cb3dSCy Schubert /** I18N function strictly for xgettext.  Do not compile. */
12952b15cb3dSCy Schubert static void bogus_function(void) {
12962b15cb3dSCy Schubert   /* TRANSLATORS:
12972b15cb3dSCy Schubert 
12982b15cb3dSCy Schubert      The following dummy function was crated solely so that xgettext can
12992b15cb3dSCy Schubert      extract the correct strings.  These strings are actually referenced
13002b15cb3dSCy Schubert      by a field name in the ntp_keygenOptions structure noted in the
13012b15cb3dSCy Schubert      comments below.  The literal text is defined in ntp_keygen_opt_strs.
13022b15cb3dSCy Schubert 
13032b15cb3dSCy Schubert      NOTE: the strings below are segmented with respect to the source string
13042b15cb3dSCy Schubert      ntp_keygen_opt_strs.  The strings above are handed off for translation
13052b15cb3dSCy Schubert      at run time a paragraph at a time.  Consequently, they are presented here
13062b15cb3dSCy Schubert      for translation a paragraph at a time.
13072b15cb3dSCy Schubert 
13082b15cb3dSCy Schubert      ALSO: often the description for an option will reference another option
13092b15cb3dSCy Schubert      by name.  These are set off with apostrophe quotes (I hope).  Do not
13102b15cb3dSCy Schubert      translate option names.
13112b15cb3dSCy Schubert    */
13122b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pzCopyright */
1313*09100258SXin LI   puts(_("ntp-keygen (ntp) 4.2.8p11\n\
1314f0574f5cSXin LI Copyright (C) 1992-2017 The University of Delaware and Network Time Foundation, all rights reserved.\n\
13152b15cb3dSCy Schubert This is free software. It is licensed for use, modification and\n\
13162b15cb3dSCy Schubert redistribution under the terms of the NTP License, copies of which\n\
13172b15cb3dSCy Schubert can be seen at:\n"));
13182b15cb3dSCy Schubert   puts(_("  <http://ntp.org/license>\n\
13192b15cb3dSCy Schubert   <http://opensource.org/licenses/ntp-license.php>\n"));
13202b15cb3dSCy Schubert 
13212b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pzCopyNotice */
13222b15cb3dSCy Schubert   puts(_("Permission to use, copy, modify, and distribute this software and its\n\
13232b15cb3dSCy Schubert documentation for any purpose with or without fee is hereby granted,\n\
13242b15cb3dSCy Schubert provided that the above copyright notice appears in all copies and that\n\
13252b15cb3dSCy Schubert both the copyright notice and this permission notice appear in supporting\n\
13262b15cb3dSCy Schubert documentation, and that the name The University of Delaware not be used in\n\
13272b15cb3dSCy Schubert advertising or publicity pertaining to distribution of the software without\n\
13282b15cb3dSCy Schubert specific, written prior permission.  The University of Delaware and Network\n\
13292b15cb3dSCy Schubert Time Foundation makes no representations about the suitability this\n\
13302b15cb3dSCy Schubert software for any purpose.  It is provided \"as is\" without express or\n\
13312b15cb3dSCy Schubert implied warranty.\n"));
13322b15cb3dSCy Schubert 
13332b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13342b15cb3dSCy Schubert   puts(_("identity modulus bits"));
13352b15cb3dSCy Schubert 
13362b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13372b15cb3dSCy Schubert   puts(_("certificate scheme"));
13382b15cb3dSCy Schubert 
13392b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13402b15cb3dSCy Schubert   puts(_("privatekey cipher"));
13412b15cb3dSCy Schubert 
13422b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13432b15cb3dSCy Schubert   puts(_("Increase debug verbosity level"));
13442b15cb3dSCy Schubert 
13452b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13462b15cb3dSCy Schubert   puts(_("Set the debug verbosity level"));
13472b15cb3dSCy Schubert 
13482b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13492b15cb3dSCy Schubert   puts(_("Write IFF or GQ identity keys"));
13502b15cb3dSCy Schubert 
13512b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13522b15cb3dSCy Schubert   puts(_("Generate GQ parameters and keys"));
13532b15cb3dSCy Schubert 
13542b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13552b15cb3dSCy Schubert   puts(_("generate RSA host key"));
13562b15cb3dSCy Schubert 
13572b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13582b15cb3dSCy Schubert   puts(_("generate IFF parameters"));
13592b15cb3dSCy Schubert 
13602b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13612b15cb3dSCy Schubert   puts(_("set Autokey group name"));
13622b15cb3dSCy Schubert 
13632b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13642b15cb3dSCy Schubert   puts(_("set certificate lifetime"));
13652b15cb3dSCy Schubert 
13662b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
1367*09100258SXin LI   puts(_("prime modulus"));
13682b15cb3dSCy Schubert 
13692b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
1370*09100258SXin LI   puts(_("generate symmetric keys"));
13712b15cb3dSCy Schubert 
13722b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13732b15cb3dSCy Schubert   puts(_("generate PC private certificate"));
13742b15cb3dSCy Schubert 
13752b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13762b15cb3dSCy Schubert   puts(_("local private password"));
13772b15cb3dSCy Schubert 
13782b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13792b15cb3dSCy Schubert   puts(_("export IFF or GQ group keys with password"));
13802b15cb3dSCy Schubert 
13812b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
1382*09100258SXin LI   puts(_("set host and optionally group name"));
13832b15cb3dSCy Schubert 
13842b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
1385*09100258SXin LI   puts(_("generate sign key (RSA or DSA)"));
13862b15cb3dSCy Schubert 
13872b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13882b15cb3dSCy Schubert   puts(_("trusted certificate (TC scheme)"));
13892b15cb3dSCy Schubert 
13902b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13912b15cb3dSCy Schubert   puts(_("generate <num> MV parameters"));
13922b15cb3dSCy Schubert 
13932b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13942b15cb3dSCy Schubert   puts(_("update <num> MV keys"));
13952b15cb3dSCy Schubert 
13962b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
13972b15cb3dSCy Schubert   puts(_("display extended usage information and exit"));
13982b15cb3dSCy Schubert 
13992b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
14002b15cb3dSCy Schubert   puts(_("extended usage information passed thru pager"));
14012b15cb3dSCy Schubert 
14022b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
14032b15cb3dSCy Schubert   puts(_("output version information and exit"));
14042b15cb3dSCy Schubert 
14052b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
14062b15cb3dSCy Schubert   puts(_("save the option state to a config file"));
14072b15cb3dSCy Schubert 
14082b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pOptDesc->pzText */
14092b15cb3dSCy Schubert   puts(_("load options from a config file"));
14102b15cb3dSCy Schubert 
14112b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pzUsageTitle */
1412*09100258SXin LI   puts(_("ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p11\n\
14132b15cb3dSCy Schubert Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
14142b15cb3dSCy Schubert 
14152b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pzExplain */
14162b15cb3dSCy Schubert   puts(_("\n"));
14172b15cb3dSCy Schubert 
14182b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pzFullVersion */
1419*09100258SXin LI   puts(_("ntp-keygen (ntp) 4.2.8p11"));
14202b15cb3dSCy Schubert 
14212b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pzFullUsage */
14222b15cb3dSCy Schubert   puts(_("<<<NOT-FOUND>>>"));
14232b15cb3dSCy Schubert 
14242b15cb3dSCy Schubert   /* referenced via ntp_keygenOptions.pzShortUsage */
14252b15cb3dSCy Schubert   puts(_("<<<NOT-FOUND>>>"));
14262b15cb3dSCy Schubert   /* LIBOPTS-MESSAGES: */
14272b15cb3dSCy Schubert #line 67 "../autoopts.c"
14282b15cb3dSCy Schubert   puts(_("allocation of %d bytes failed\n"));
14292b15cb3dSCy Schubert #line 93 "../autoopts.c"
14302b15cb3dSCy Schubert   puts(_("allocation of %d bytes failed\n"));
14312b15cb3dSCy Schubert #line 53 "../init.c"
14322b15cb3dSCy Schubert   puts(_("AutoOpts function called without option descriptor\n"));
14332b15cb3dSCy Schubert #line 86 "../init.c"
14342b15cb3dSCy Schubert   puts(_("\tThis exceeds the compiled library version:  "));
14352b15cb3dSCy Schubert #line 84 "../init.c"
14362b15cb3dSCy Schubert   puts(_("Automated Options Processing Error!\n"
14372b15cb3dSCy Schubert        "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
14382b15cb3dSCy Schubert #line 80 "../autoopts.c"
14392b15cb3dSCy Schubert   puts(_("realloc of %d bytes at 0x%p failed\n"));
14402b15cb3dSCy Schubert #line 88 "../init.c"
14412b15cb3dSCy Schubert   puts(_("\tThis is less than the minimum library version:  "));
14422b15cb3dSCy Schubert #line 121 "../version.c"
14432b15cb3dSCy Schubert   puts(_("Automated Options version %s\n"
14442b15cb3dSCy Schubert        "\tCopyright (C) 1999-2014 by Bruce Korb - all rights reserved\n"));
1445276da39aSCy Schubert #line 87 "../makeshell.c"
14462b15cb3dSCy Schubert   puts(_("(AutoOpts bug):  %s.\n"));
14472b15cb3dSCy Schubert #line 90 "../reset.c"
14482b15cb3dSCy Schubert   puts(_("optionResetOpt() called, but reset-option not configured"));
14492b15cb3dSCy Schubert #line 292 "../usage.c"
14502b15cb3dSCy Schubert   puts(_("could not locate the 'help' option"));
14512b15cb3dSCy Schubert #line 336 "../autoopts.c"
14522b15cb3dSCy Schubert   puts(_("optionProcess() was called with invalid data"));
14532b15cb3dSCy Schubert #line 748 "../usage.c"
14542b15cb3dSCy Schubert   puts(_("invalid argument type specified"));
14552b15cb3dSCy Schubert #line 598 "../find.c"
14562b15cb3dSCy Schubert   puts(_("defaulted to option with optional arg"));
14572b15cb3dSCy Schubert #line 76 "../alias.c"
14582b15cb3dSCy Schubert   puts(_("aliasing option is out of range."));
14592b15cb3dSCy Schubert #line 234 "../enum.c"
14602b15cb3dSCy Schubert   puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
14612b15cb3dSCy Schubert #line 108 "../find.c"
14622b15cb3dSCy Schubert   puts(_("  The following options match:\n"));
14632b15cb3dSCy Schubert #line 293 "../find.c"
14642b15cb3dSCy Schubert   puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
14652b15cb3dSCy Schubert #line 161 "../check.c"
14662b15cb3dSCy Schubert   puts(_("%s: Command line arguments required\n"));
14672b15cb3dSCy Schubert #line 43 "../alias.c"
14682b15cb3dSCy Schubert   puts(_("%d %s%s options allowed\n"));
1469276da39aSCy Schubert #line 94 "../makeshell.c"
14702b15cb3dSCy Schubert   puts(_("%s error %d (%s) calling %s for '%s'\n"));
1471276da39aSCy Schubert #line 306 "../makeshell.c"
14722b15cb3dSCy Schubert   puts(_("interprocess pipe"));
14732b15cb3dSCy Schubert #line 168 "../version.c"
14742b15cb3dSCy Schubert   puts(_("error: version option argument '%c' invalid.  Use:\n"
14752b15cb3dSCy Schubert        "\t'v' - version only\n"
14762b15cb3dSCy Schubert        "\t'c' - version and copyright\n"
14772b15cb3dSCy Schubert        "\t'n' - version and full copyright notice\n"));
14782b15cb3dSCy Schubert #line 58 "../check.c"
14792b15cb3dSCy Schubert   puts(_("%s error:  the '%s' and '%s' options conflict\n"));
14802b15cb3dSCy Schubert #line 217 "../find.c"
14812b15cb3dSCy Schubert   puts(_("%s: The '%s' option has been disabled."));
14822b15cb3dSCy Schubert #line 430 "../find.c"
14832b15cb3dSCy Schubert   puts(_("%s: The '%s' option has been disabled."));
14842b15cb3dSCy Schubert #line 38 "../alias.c"
14852b15cb3dSCy Schubert   puts(_("-equivalence"));
14862b15cb3dSCy Schubert #line 469 "../find.c"
14872b15cb3dSCy Schubert   puts(_("%s: illegal option -- %c\n"));
14882b15cb3dSCy Schubert #line 110 "../reset.c"
14892b15cb3dSCy Schubert   puts(_("%s: illegal option -- %c\n"));
14902b15cb3dSCy Schubert #line 271 "../find.c"
14912b15cb3dSCy Schubert   puts(_("%s: illegal option -- %s\n"));
14922b15cb3dSCy Schubert #line 755 "../find.c"
14932b15cb3dSCy Schubert   puts(_("%s: illegal option -- %s\n"));
14942b15cb3dSCy Schubert #line 118 "../reset.c"
14952b15cb3dSCy Schubert   puts(_("%s: illegal option -- %s\n"));
14962b15cb3dSCy Schubert #line 335 "../find.c"
14972b15cb3dSCy Schubert   puts(_("%s: unknown vendor extension option -- %s\n"));
14982b15cb3dSCy Schubert #line 159 "../enum.c"
14992b15cb3dSCy Schubert   puts(_("  or an integer from %d through %d\n"));
15002b15cb3dSCy Schubert #line 169 "../enum.c"
15012b15cb3dSCy Schubert   puts(_("  or an integer from %d through %d\n"));
15022b15cb3dSCy Schubert #line 747 "../usage.c"
15032b15cb3dSCy Schubert   puts(_("%s error:  invalid option descriptor for %s\n"));
15042b15cb3dSCy Schubert #line 1081 "../usage.c"
15052b15cb3dSCy Schubert   puts(_("%s error:  invalid option descriptor for %s\n"));
15062b15cb3dSCy Schubert #line 385 "../find.c"
15072b15cb3dSCy Schubert   puts(_("%s: invalid option name: %s\n"));
15082b15cb3dSCy Schubert #line 527 "../find.c"
15092b15cb3dSCy Schubert   puts(_("%s: The '%s' option requires an argument.\n"));
15102b15cb3dSCy Schubert #line 156 "../autoopts.c"
15112b15cb3dSCy Schubert   puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
15122b15cb3dSCy Schubert        "\t'%s' and '%s'."));
15132b15cb3dSCy Schubert #line 94 "../check.c"
15142b15cb3dSCy Schubert   puts(_("%s error:  The %s option is required\n"));
15152b15cb3dSCy Schubert #line 632 "../find.c"
15162b15cb3dSCy Schubert   puts(_("%s: The '%s' option cannot have an argument.\n"));
15172b15cb3dSCy Schubert #line 151 "../check.c"
15182b15cb3dSCy Schubert   puts(_("%s: Command line arguments are not allowed.\n"));
15192b15cb3dSCy Schubert #line 535 "../save.c"
15202b15cb3dSCy Schubert   puts(_("error %d (%s) creating %s\n"));
15212b15cb3dSCy Schubert #line 234 "../enum.c"
15222b15cb3dSCy Schubert   puts(_("%s error:  '%s' does not match any %s keywords.\n"));
15232b15cb3dSCy Schubert #line 93 "../reset.c"
15242b15cb3dSCy Schubert   puts(_("%s error: The '%s' option requires an argument.\n"));
15252b15cb3dSCy Schubert #line 184 "../save.c"
15262b15cb3dSCy Schubert   puts(_("error %d (%s) stat-ing %s\n"));
15272b15cb3dSCy Schubert #line 238 "../save.c"
15282b15cb3dSCy Schubert   puts(_("error %d (%s) stat-ing %s\n"));
15292b15cb3dSCy Schubert #line 143 "../restore.c"
15302b15cb3dSCy Schubert   puts(_("%s error: no saved option state\n"));
15312b15cb3dSCy Schubert #line 231 "../autoopts.c"
15322b15cb3dSCy Schubert   puts(_("'%s' is not a command line option.\n"));
15332b15cb3dSCy Schubert #line 111 "../time.c"
15342b15cb3dSCy Schubert   puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
15352b15cb3dSCy Schubert #line 132 "../save.c"
15362b15cb3dSCy Schubert   puts(_("'%s' not defined\n"));
15372b15cb3dSCy Schubert #line 50 "../time.c"
15382b15cb3dSCy Schubert   puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
15392b15cb3dSCy Schubert #line 92 "../check.c"
15402b15cb3dSCy Schubert   puts(_("%s error:  The %s option must appear %d times.\n"));
15412b15cb3dSCy Schubert #line 164 "../numeric.c"
15422b15cb3dSCy Schubert   puts(_("%s error:  '%s' is not a recognizable number.\n"));
15432b15cb3dSCy Schubert #line 200 "../enum.c"
15442b15cb3dSCy Schubert   puts(_("%s error:  %s exceeds %s keyword count\n"));
15452b15cb3dSCy Schubert #line 330 "../usage.c"
15462b15cb3dSCy Schubert   puts(_("Try '%s %s' for more information.\n"));
15472b15cb3dSCy Schubert #line 45 "../alias.c"
15482b15cb3dSCy Schubert   puts(_("one %s%s option allowed\n"));
1549276da39aSCy Schubert #line 208 "../makeshell.c"
15502b15cb3dSCy Schubert   puts(_("standard output"));
1551276da39aSCy Schubert #line 943 "../makeshell.c"
15522b15cb3dSCy Schubert   puts(_("standard output"));
15532b15cb3dSCy Schubert #line 274 "../usage.c"
15542b15cb3dSCy Schubert   puts(_("standard output"));
15552b15cb3dSCy Schubert #line 415 "../usage.c"
15562b15cb3dSCy Schubert   puts(_("standard output"));
15572b15cb3dSCy Schubert #line 625 "../usage.c"
15582b15cb3dSCy Schubert   puts(_("standard output"));
15592b15cb3dSCy Schubert #line 175 "../version.c"
15602b15cb3dSCy Schubert   puts(_("standard output"));
15612b15cb3dSCy Schubert #line 274 "../usage.c"
15622b15cb3dSCy Schubert   puts(_("standard error"));
15632b15cb3dSCy Schubert #line 415 "../usage.c"
15642b15cb3dSCy Schubert   puts(_("standard error"));
15652b15cb3dSCy Schubert #line 625 "../usage.c"
15662b15cb3dSCy Schubert   puts(_("standard error"));
15672b15cb3dSCy Schubert #line 175 "../version.c"
15682b15cb3dSCy Schubert   puts(_("standard error"));
1569276da39aSCy Schubert #line 208 "../makeshell.c"
15702b15cb3dSCy Schubert   puts(_("write"));
1571276da39aSCy Schubert #line 943 "../makeshell.c"
15722b15cb3dSCy Schubert   puts(_("write"));
15732b15cb3dSCy Schubert #line 273 "../usage.c"
15742b15cb3dSCy Schubert   puts(_("write"));
15752b15cb3dSCy Schubert #line 414 "../usage.c"
15762b15cb3dSCy Schubert   puts(_("write"));
15772b15cb3dSCy Schubert #line 624 "../usage.c"
15782b15cb3dSCy Schubert   puts(_("write"));
15792b15cb3dSCy Schubert #line 174 "../version.c"
15802b15cb3dSCy Schubert   puts(_("write"));
15812b15cb3dSCy Schubert #line 60 "../numeric.c"
15822b15cb3dSCy Schubert   puts(_("%s error:  %s option value %ld is out of range.\n"));
15832b15cb3dSCy Schubert #line 44 "../check.c"
15842b15cb3dSCy Schubert   puts(_("%s error:  %s option requires the %s option\n"));
15852b15cb3dSCy Schubert #line 131 "../save.c"
15862b15cb3dSCy Schubert   puts(_("%s warning:  cannot save options - %s not regular file\n"));
15872b15cb3dSCy Schubert #line 183 "../save.c"
15882b15cb3dSCy Schubert   puts(_("%s warning:  cannot save options - %s not regular file\n"));
15892b15cb3dSCy Schubert #line 237 "../save.c"
15902b15cb3dSCy Schubert   puts(_("%s warning:  cannot save options - %s not regular file\n"));
15912b15cb3dSCy Schubert #line 256 "../save.c"
15922b15cb3dSCy Schubert   puts(_("%s warning:  cannot save options - %s not regular file\n"));
15932b15cb3dSCy Schubert #line 534 "../save.c"
15942b15cb3dSCy Schubert   puts(_("%s warning:  cannot save options - %s not regular file\n"));
15952b15cb3dSCy Schubert   /* END-LIBOPTS-MESSAGES */
15962b15cb3dSCy Schubert 
15972b15cb3dSCy Schubert   /* USAGE-TEXT: */
15982b15cb3dSCy Schubert #line 873 "../usage.c"
15992b15cb3dSCy Schubert   puts(_("\t\t\t\t- an alternate for '%s'\n"));
16002b15cb3dSCy Schubert #line 1148 "../usage.c"
16012b15cb3dSCy Schubert   puts(_("Version, usage and configuration options:"));
16022b15cb3dSCy Schubert #line 924 "../usage.c"
16032b15cb3dSCy Schubert   puts(_("\t\t\t\t- default option for unnamed options\n"));
16042b15cb3dSCy Schubert #line 837 "../usage.c"
16052b15cb3dSCy Schubert   puts(_("\t\t\t\t- disabled as '--%s'\n"));
16062b15cb3dSCy Schubert #line 1117 "../usage.c"
16072b15cb3dSCy Schubert   puts(_(" --- %-14s %s\n"));
16082b15cb3dSCy Schubert #line 1115 "../usage.c"
16092b15cb3dSCy Schubert   puts(_("This option has been disabled"));
16102b15cb3dSCy Schubert #line 864 "../usage.c"
16112b15cb3dSCy Schubert   puts(_("\t\t\t\t- enabled by default\n"));
16122b15cb3dSCy Schubert #line 40 "../alias.c"
16132b15cb3dSCy Schubert   puts(_("%s error:  only "));
16142b15cb3dSCy Schubert #line 1194 "../usage.c"
16152b15cb3dSCy Schubert   puts(_(" - examining environment variables named %s_*\n"));
16162b15cb3dSCy Schubert #line 168 "../file.c"
16172b15cb3dSCy Schubert   puts(_("\t\t\t\t- file must not pre-exist\n"));
16182b15cb3dSCy Schubert #line 172 "../file.c"
16192b15cb3dSCy Schubert   puts(_("\t\t\t\t- file must pre-exist\n"));
16202b15cb3dSCy Schubert #line 380 "../usage.c"
16212b15cb3dSCy Schubert   puts(_("Options are specified by doubled hyphens and their name or by a single\n"
16222b15cb3dSCy Schubert        "hyphen and the flag character.\n"));
1623276da39aSCy Schubert #line 921 "../makeshell.c"
16242b15cb3dSCy Schubert   puts(_("\n"
16252b15cb3dSCy Schubert        "= = = = = = = =\n\n"
16262b15cb3dSCy Schubert        "This incarnation of genshell will produce\n"
16272b15cb3dSCy Schubert        "a shell script to parse the options for %s:\n\n"));
16282b15cb3dSCy Schubert #line 166 "../enum.c"
16292b15cb3dSCy Schubert   puts(_("  or an integer mask with any of the lower %d bits set\n"));
16302b15cb3dSCy Schubert #line 897 "../usage.c"
16312b15cb3dSCy Schubert   puts(_("\t\t\t\t- is a set membership option\n"));
16322b15cb3dSCy Schubert #line 918 "../usage.c"
16332b15cb3dSCy Schubert   puts(_("\t\t\t\t- must appear between %d and %d times\n"));
16342b15cb3dSCy Schubert #line 382 "../usage.c"
16352b15cb3dSCy Schubert   puts(_("Options are specified by single or double hyphens and their name.\n"));
16362b15cb3dSCy Schubert #line 904 "../usage.c"
16372b15cb3dSCy Schubert   puts(_("\t\t\t\t- may appear multiple times\n"));
16382b15cb3dSCy Schubert #line 891 "../usage.c"
16392b15cb3dSCy Schubert   puts(_("\t\t\t\t- may not be preset\n"));
16402b15cb3dSCy Schubert #line 1309 "../usage.c"
16412b15cb3dSCy Schubert   puts(_("   Arg Option-Name    Description\n"));
16422b15cb3dSCy Schubert #line 1245 "../usage.c"
16432b15cb3dSCy Schubert   puts(_("  Flg Arg Option-Name    Description\n"));
16442b15cb3dSCy Schubert #line 1303 "../usage.c"
16452b15cb3dSCy Schubert   puts(_("  Flg Arg Option-Name    Description\n"));
16462b15cb3dSCy Schubert #line 1304 "../usage.c"
16472b15cb3dSCy Schubert   puts(_(" %3s %s"));
16482b15cb3dSCy Schubert #line 1310 "../usage.c"
16492b15cb3dSCy Schubert   puts(_(" %3s %s"));
16502b15cb3dSCy Schubert #line 387 "../usage.c"
16512b15cb3dSCy Schubert   puts(_("The '-#<number>' option may omit the hash char\n"));
16522b15cb3dSCy Schubert #line 383 "../usage.c"
16532b15cb3dSCy Schubert   puts(_("All arguments are named options.\n"));
16542b15cb3dSCy Schubert #line 971 "../usage.c"
16552b15cb3dSCy Schubert   puts(_(" - reading file %s"));
16562b15cb3dSCy Schubert #line 409 "../usage.c"
16572b15cb3dSCy Schubert   puts(_("\n"
16582b15cb3dSCy Schubert        "Please send bug reports to:  <%s>\n"));
16592b15cb3dSCy Schubert #line 100 "../version.c"
16602b15cb3dSCy Schubert   puts(_("\n"
16612b15cb3dSCy Schubert        "Please send bug reports to:  <%s>\n"));
16622b15cb3dSCy Schubert #line 129 "../version.c"
16632b15cb3dSCy Schubert   puts(_("\n"
16642b15cb3dSCy Schubert        "Please send bug reports to:  <%s>\n"));
16652b15cb3dSCy Schubert #line 903 "../usage.c"
16662b15cb3dSCy Schubert   puts(_("\t\t\t\t- may NOT appear - preset only\n"));
16672b15cb3dSCy Schubert #line 944 "../usage.c"
16682b15cb3dSCy Schubert   puts(_("\n"
16692b15cb3dSCy Schubert        "The following option preset mechanisms are supported:\n"));
16702b15cb3dSCy Schubert #line 1192 "../usage.c"
16712b15cb3dSCy Schubert   puts(_("\n"
16722b15cb3dSCy Schubert        "The following option preset mechanisms are supported:\n"));
16732b15cb3dSCy Schubert #line 682 "../usage.c"
16742b15cb3dSCy Schubert   puts(_("prohibits these options:\n"));
16752b15cb3dSCy Schubert #line 677 "../usage.c"
16762b15cb3dSCy Schubert   puts(_("prohibits the option '%s'\n"));
16772b15cb3dSCy Schubert #line 81 "../numeric.c"
16782b15cb3dSCy Schubert   puts(_("%s%ld to %ld"));
16792b15cb3dSCy Schubert #line 79 "../numeric.c"
16802b15cb3dSCy Schubert   puts(_("%sgreater than or equal to %ld"));
16812b15cb3dSCy Schubert #line 75 "../numeric.c"
16822b15cb3dSCy Schubert   puts(_("%s%ld exactly"));
16832b15cb3dSCy Schubert #line 68 "../numeric.c"
16842b15cb3dSCy Schubert   puts(_("%sit must lie in one of the ranges:\n"));
16852b15cb3dSCy Schubert #line 68 "../numeric.c"
16862b15cb3dSCy Schubert   puts(_("%sit must be in the range:\n"));
16872b15cb3dSCy Schubert #line 88 "../numeric.c"
16882b15cb3dSCy Schubert   puts(_(", or\n"));
16892b15cb3dSCy Schubert #line 66 "../numeric.c"
16902b15cb3dSCy Schubert   puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
16912b15cb3dSCy Schubert #line 77 "../numeric.c"
16922b15cb3dSCy Schubert   puts(_("%sless than or equal to %ld"));
16932b15cb3dSCy Schubert #line 390 "../usage.c"
16942b15cb3dSCy Schubert   puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
16952b15cb3dSCy Schubert #line 652 "../usage.c"
16962b15cb3dSCy Schubert   puts(_("requires the option '%s'\n"));
16972b15cb3dSCy Schubert #line 655 "../usage.c"
16982b15cb3dSCy Schubert   puts(_("requires these options:\n"));
16992b15cb3dSCy Schubert #line 1321 "../usage.c"
17002b15cb3dSCy Schubert   puts(_("   Arg Option-Name   Req?  Description\n"));
17012b15cb3dSCy Schubert #line 1315 "../usage.c"
17022b15cb3dSCy Schubert   puts(_("  Flg Arg Option-Name   Req?  Description\n"));
17032b15cb3dSCy Schubert #line 167 "../enum.c"
17042b15cb3dSCy Schubert   puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
17052b15cb3dSCy Schubert        "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
17062b15cb3dSCy Schubert        "will set them all.  Multiple entries may be passed as an option\n"
17072b15cb3dSCy Schubert        "argument list.\n"));
17082b15cb3dSCy Schubert #line 910 "../usage.c"
17092b15cb3dSCy Schubert   puts(_("\t\t\t\t- may appear up to %d times\n"));
17102b15cb3dSCy Schubert #line 77 "../enum.c"
17112b15cb3dSCy Schubert   puts(_("The valid \"%s\" option keywords are:\n"));
17122b15cb3dSCy Schubert #line 1152 "../usage.c"
17132b15cb3dSCy Schubert   puts(_("The next option supports vendor supported extra options:"));
17142b15cb3dSCy Schubert #line 773 "../usage.c"
17152b15cb3dSCy Schubert   puts(_("These additional options are:"));
17162b15cb3dSCy Schubert   /* END-USAGE-TEXT */
17172b15cb3dSCy Schubert }
17182b15cb3dSCy Schubert #endif /* uncompilable code */
1719ea906c41SOllivier Robert #ifdef  __cplusplus
1720ea906c41SOllivier Robert }
1721ea906c41SOllivier Robert #endif
1722ea906c41SOllivier Robert /* ntp-keygen-opts.c ends here */
1723