Documentation updates
[gnutls.git] / src / certtool-args.c
blobd416fe66169b0d5d94152d7a5639e12c61e03779
1 /* -*- buffer-read-only: t -*- vi: set ro:
2 *
3 * DO NOT EDIT THIS FILE (certtool-args.c)
4 *
5 * It has been AutoGen-ed October 9, 2012 at 08:27:12 PM by AutoGen 5.16
6 * From the definitions certtool-args.def
7 * and the template file options
9 * Generated from AutoOpts 36:4:11 templates.
11 * AutoOpts is a copyrighted work. This source file is not encumbered
12 * by AutoOpts licensing, but is provided under the licensing terms chosen
13 * by the certtool author or copyright holder. AutoOpts is
14 * licensed under the terms of the LGPL. The redistributable library
15 * (``libopts'') is licensed under the terms of either the LGPL or, at the
16 * users discretion, the BSD license. See the AutoOpts and/or libopts sources
17 * for details.
19 * The certtool program is copyrighted and licensed
20 * under the following terms:
22 * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
23 * This is free software. It is licensed for use, modification and
24 * redistribution under the terms of the
25 * GNU General Public License, version 3 or later
26 * <http://gnu.org/licenses/gpl.html>
28 * certtool is free software: you can redistribute it and/or modify it
29 * under the terms of the GNU General Public License as published by the
30 * Free Software Foundation, either version 3 of the License, or
31 * (at your option) any later version.
33 * certtool is distributed in the hope that it will be useful, but
34 * WITHOUT ANY WARRANTY; without even the implied warranty of
35 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
36 * See the GNU General Public License for more details.
38 * You should have received a copy of the GNU General Public License along
39 * with this program. If not, see <http://www.gnu.org/licenses/>.
42 #ifndef __doxygen__
43 #define OPTION_CODE_COMPILE 1
44 #include "certtool-args.h"
45 #include <sys/types.h>
47 #include <limits.h>
48 #include <stdio.h>
49 #include <stdlib.h>
50 #include <errno.h>
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55 extern FILE * option_usage_fp;
57 /* TRANSLATORS: choose the translation for option names wisely because you
58 cannot ever change your mind. */
59 #define zCopyright (certtool_opt_strs+0)
60 #define zLicenseDescrip (certtool_opt_strs+279)
63 #ifndef NULL
64 # define NULL 0
65 #endif
68 * certtool option static const strings
70 static char const certtool_opt_strs[5231] =
71 /* 0 */ "certtool @VERSION@\n"
72 "Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
73 "This is free software. It is licensed for use, modification and\n"
74 "redistribution under the terms of the\n"
75 "GNU General Public License, version 3 or later\n"
76 " <http://gnu.org/licenses/gpl.html>\n\0"
77 /* 279 */ "certtool is free software: you can redistribute it and/or modify it under\n"
78 "the terms of the GNU General Public License as published by the Free\n"
79 "Software Foundation, either version 3 of the License, or (at your option)\n"
80 "any later version.\n\n"
81 "certtool is distributed in the hope that it will be useful, but WITHOUT ANY\n"
82 "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n"
83 "FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\n"
84 "details.\n\n"
85 "You should have received a copy of the GNU General Public License along\n"
86 "with this program. If not, see <http://www.gnu.org/licenses/>.\n\0"
87 /* 884 */ "Enable debugging.\0"
88 /* 902 */ "DEBUG\0"
89 /* 908 */ "debug\0"
90 /* 914 */ "More verbose output\0"
91 /* 934 */ "VERBOSE\0"
92 /* 942 */ "verbose\0"
93 /* 950 */ "Input file\0"
94 /* 961 */ "INFILE\0"
95 /* 968 */ "infile\0"
96 /* 975 */ "Output file\0"
97 /* 987 */ "OUTFILE\0"
98 /* 995 */ "outfile\0"
99 /* 1003 */ "Generate a self-signed certificate\0"
100 /* 1038 */ "GENERATE_SELF_SIGNED\0"
101 /* 1059 */ "generate-self-signed\0"
102 /* 1080 */ "Generate a signed certificate\0"
103 /* 1110 */ "GENERATE_CERTIFICATE\0"
104 /* 1131 */ "generate-certificate\0"
105 /* 1152 */ "Generates a proxy certificate\0"
106 /* 1182 */ "GENERATE_PROXY\0"
107 /* 1197 */ "generate-proxy\0"
108 /* 1212 */ "Generate a CRL\0"
109 /* 1227 */ "GENERATE_CRL\0"
110 /* 1240 */ "generate-crl\0"
111 /* 1253 */ "Update a signed certificate\0"
112 /* 1281 */ "UPDATE_CERTIFICATE\0"
113 /* 1300 */ "update-certificate\0"
114 /* 1319 */ "Generate a private key\0"
115 /* 1342 */ "GENERATE_PRIVKEY\0"
116 /* 1359 */ "generate-privkey\0"
117 /* 1376 */ "Generate a PKCS #10 certificate request\0"
118 /* 1416 */ "GENERATE_REQUEST\0"
119 /* 1433 */ "generate-request\0"
120 /* 1450 */ "Verify a PEM encoded certificate chain.\0"
121 /* 1490 */ "VERIFY_CHAIN\0"
122 /* 1503 */ "verify-chain\0"
123 /* 1516 */ "Verify a PEM encoded certificate chain using a trusted list.\0"
124 /* 1577 */ "VERIFY\0"
125 /* 1584 */ "verify\0"
126 /* 1591 */ "Verify a CRL using a trusted list.\0"
127 /* 1626 */ "VERIFY_CRL\0"
128 /* 1637 */ "verify-crl\0"
129 /* 1648 */ "Generate PKCS #3 encoded Diffie-Hellman parameters.\0"
130 /* 1700 */ "GENERATE_DH_PARAMS\0"
131 /* 1719 */ "generate-dh-params\0"
132 /* 1738 */ "Get the included PKCS #3 encoded Diffie-Hellman parameters.\0"
133 /* 1798 */ "GET_DH_PARAMS\0"
134 /* 1812 */ "get-dh-params\0"
135 /* 1826 */ "Print information PKCS #3 encoded Diffie-Hellman parameters\0"
136 /* 1886 */ "DH_INFO\0"
137 /* 1894 */ "dh-info\0"
138 /* 1902 */ "Loads a private key file\0"
139 /* 1927 */ "LOAD_PRIVKEY\0"
140 /* 1940 */ "load-privkey\0"
141 /* 1953 */ "Loads a public key file\0"
142 /* 1977 */ "LOAD_PUBKEY\0"
143 /* 1989 */ "load-pubkey\0"
144 /* 2001 */ "Loads a certificate request file\0"
145 /* 2034 */ "LOAD_REQUEST\0"
146 /* 2047 */ "load-request\0"
147 /* 2060 */ "Loads a certificate file\0"
148 /* 2085 */ "LOAD_CERTIFICATE\0"
149 /* 2102 */ "load-certificate\0"
150 /* 2119 */ "Loads the certificate authority's private key file\0"
151 /* 2170 */ "LOAD_CA_PRIVKEY\0"
152 /* 2186 */ "load-ca-privkey\0"
153 /* 2202 */ "Loads the certificate authority's certificate file\0"
154 /* 2253 */ "LOAD_CA_CERTIFICATE\0"
155 /* 2273 */ "load-ca-certificate\0"
156 /* 2293 */ "Password to use\0"
157 /* 2309 */ "PASSWORD\0"
158 /* 2318 */ "password\0"
159 /* 2327 */ "Enforce a NULL password\0"
160 /* 2351 */ "NULL_PASSWORD\0"
161 /* 2365 */ "null-password\0"
162 /* 2379 */ "Print information on the given certificate\0"
163 /* 2422 */ "CERTIFICATE_INFO\0"
164 /* 2439 */ "certificate-info\0"
165 /* 2456 */ "Print certificate's public key\0"
166 /* 2487 */ "CERTIFICATE_PUBKEY\0"
167 /* 2506 */ "certificate-pubkey\0"
168 /* 2525 */ "Print information on the given OpenPGP certificate\0"
169 /* 2576 */ "PGP_CERTIFICATE_INFO\0"
170 /* 2597 */ "pgp-certificate-info\0"
171 /* 2618 */ "Print information on the given OpenPGP keyring structure\0"
172 /* 2675 */ "PGP_RING_INFO\0"
173 /* 2689 */ "pgp-ring-info\0"
174 /* 2703 */ "Print information on the given CRL structure\0"
175 /* 2748 */ "CRL_INFO\0"
176 /* 2757 */ "crl-info\0"
177 /* 2766 */ "Print information on the given certificate request\0"
178 /* 2817 */ "CRQ_INFO\0"
179 /* 2826 */ "crq-info\0"
180 /* 2835 */ "Do not use extensions in certificate requests\0"
181 /* 2881 */ "NO_CRQ_EXTENSIONS\0"
182 /* 2899 */ "no-crq-extensions\0"
183 /* 2917 */ "Print information on a PKCS #12 structure\0"
184 /* 2959 */ "P12_INFO\0"
185 /* 2968 */ "p12-info\0"
186 /* 2977 */ "Print information on a PKCS #7 structure\0"
187 /* 3018 */ "P7_INFO\0"
188 /* 3026 */ "p7-info\0"
189 /* 3034 */ "Convert S/MIME to PKCS #7 structure\0"
190 /* 3070 */ "SMIME_TO_P7\0"
191 /* 3082 */ "smime-to-p7\0"
192 /* 3094 */ "Print information on a private key\0"
193 /* 3129 */ "KEY_INFO\0"
194 /* 3138 */ "key-info\0"
195 /* 3147 */ "Print information on an OpenPGP private key\0"
196 /* 3191 */ "PGP_KEY_INFO\0"
197 /* 3204 */ "pgp-key-info\0"
198 /* 3217 */ "Print information on a public key\0"
199 /* 3251 */ "PUBKEY_INFO\0"
200 /* 3263 */ "pubkey-info\0"
201 /* 3275 */ "Generate an X.509 version 1 certificate (with no extensions)\0"
202 /* 3336 */ "V1\0"
203 /* 3339 */ "v1\0"
204 /* 3342 */ "Generate a PKCS #12 structure\0"
205 /* 3372 */ "TO_P12\0"
206 /* 3379 */ "to-p12\0"
207 /* 3386 */ "Generate a PKCS #8 structure\0"
208 /* 3415 */ "TO_P8\0"
209 /* 3421 */ "to-p8\0"
210 /* 3427 */ "Use PKCS #8 format for private keys\0"
211 /* 3463 */ "PKCS8\0"
212 /* 3469 */ "pkcs8\0"
213 /* 3475 */ "Generate RSA key\0"
214 /* 3492 */ "RSA\0"
215 /* 3496 */ "rsa\0"
216 /* 3500 */ "Generate DSA key\0"
217 /* 3517 */ "DSA\0"
218 /* 3521 */ "dsa\0"
219 /* 3525 */ "Generate ECC (ECDSA) key\0"
220 /* 3550 */ "ECC\0"
221 /* 3554 */ "ecc\0"
222 /* 3558 */ "Hash algorithm to use for signing.\0"
223 /* 3593 */ "HASH\0"
224 /* 3598 */ "hash\0"
225 /* 3603 */ "Use DER format for input certificates and private keys.\0"
226 /* 3659 */ "INDER\0"
227 /* 3665 */ "no-inder\0"
228 /* 3674 */ "no\0"
229 /* 3677 */ "This is an alias for 'inder'\0"
230 /* 3706 */ "inraw\0"
231 /* 3712 */ "Use DER format for output certificates and private keys\0"
232 /* 3768 */ "OUTDER\0"
233 /* 3775 */ "no-outder\0"
234 /* 3785 */ "This is an alias for 'outder'\0"
235 /* 3815 */ "outraw\0"
236 /* 3822 */ "Specify the number of bits for key generate\0"
237 /* 3866 */ "BITS\0"
238 /* 3871 */ "bits\0"
239 /* 3876 */ "Specify the security level [low, legacy, normal, high, ultra].\0"
240 /* 3939 */ "SEC_PARAM\0"
241 /* 3949 */ "sec-param\0"
242 /* 3959 */ "No effect\0"
243 /* 3969 */ "DISABLE_QUICK_RANDOM\0"
244 /* 3990 */ "disable-quick-random\0"
245 /* 4011 */ "Template file to use for non-interactive operation\0"
246 /* 4062 */ "TEMPLATE\0"
247 /* 4071 */ "template\0"
248 /* 4080 */ "Cipher to use for PKCS #8 and #12 operations\0"
249 /* 4125 */ "PKCS_CIPHER\0"
250 /* 4137 */ "pkcs-cipher\0"
251 /* 4149 */ "Print the DANE RR data on a certificate or public key\0"
252 /* 4203 */ "DANE_RR\0"
253 /* 4211 */ "dane-rr\0"
254 /* 4219 */ "Specify the hostname to be used in the DANE RR\0"
255 /* 4266 */ "DANE_HOST\0"
256 /* 4276 */ "dane-host\0"
257 /* 4286 */ "The protocol set for DANE data (tcp, udp etc.)\0"
258 /* 4333 */ "DANE_PROTO\0"
259 /* 4344 */ "dane-proto\0"
260 /* 4355 */ "Specify the port number for the DANE data.\0"
261 /* 4398 */ "DANE_PORT\0"
262 /* 4408 */ "dane-port\0"
263 /* 4418 */ "Whether the provided certificate or public key is a Certificate\n"
264 "authority.\0"
265 /* 4493 */ "DANE_CA\0"
266 /* 4501 */ "dane-ca\0"
267 /* 4509 */ "Use the hash of the X.509 certificate, rather than the public key.\0"
268 /* 4576 */ "DANE_FULL_X509\0"
269 /* 4591 */ "dane-full-x509\0"
270 /* 4606 */ "The provided certificate or public key is a local entity.\0"
271 /* 4664 */ "DANE_LOCAL\0"
272 /* 4675 */ "dane-local\0"
273 /* 4686 */ "Display extended usage information and exit\0"
274 /* 4730 */ "help\0"
275 /* 4735 */ "Extended usage information passed thru pager\0"
276 /* 4780 */ "more-help\0"
277 /* 4790 */ "Output version information and exit\0"
278 /* 4826 */ "version\0"
279 /* 4834 */ "CERTTOOL\0"
280 /* 4843 */ "certtool - GnuTLS PKCS #11 tool - Ver. @VERSION@\n"
281 "USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
282 /* 4950 */ "bug-gnutls@gnu.org\0"
283 /* 4969 */ "\n\n\0"
284 /* 4972 */ "\n"
285 "Tool to parse and generate X.509 certificates, requests and private keys.\n"
286 "It can be used interactively or non interactively by specifying the\n"
287 "template command line option.\n\0"
288 /* 5146 */ "certtool @VERSION@\0"
289 /* 5165 */ "certtool [options] [url]\n"
290 "certtool --help for usage instructions.\n";
293 * debug option description:
295 #define DEBUG_DESC (certtool_opt_strs+884)
296 #define DEBUG_NAME (certtool_opt_strs+902)
297 #define DEBUG_name (certtool_opt_strs+908)
298 #define DEBUG_FLAGS (OPTST_DISABLED \
299 | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
302 * verbose option description:
304 #define VERBOSE_DESC (certtool_opt_strs+914)
305 #define VERBOSE_NAME (certtool_opt_strs+934)
306 #define VERBOSE_name (certtool_opt_strs+942)
307 #define VERBOSE_FLAGS (OPTST_DISABLED)
310 * infile option description:
312 #define INFILE_DESC (certtool_opt_strs+950)
313 #define INFILE_NAME (certtool_opt_strs+961)
314 #define INFILE_name (certtool_opt_strs+968)
315 #define INFILE_FLAGS (OPTST_DISABLED \
316 | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
319 * outfile option description:
321 #define OUTFILE_DESC (certtool_opt_strs+975)
322 #define OUTFILE_NAME (certtool_opt_strs+987)
323 #define OUTFILE_name (certtool_opt_strs+995)
324 #define OUTFILE_FLAGS (OPTST_DISABLED \
325 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
328 * generate-self-signed option description:
330 #define GENERATE_SELF_SIGNED_DESC (certtool_opt_strs+1003)
331 #define GENERATE_SELF_SIGNED_NAME (certtool_opt_strs+1038)
332 #define GENERATE_SELF_SIGNED_name (certtool_opt_strs+1059)
333 #define GENERATE_SELF_SIGNED_FLAGS (OPTST_DISABLED)
336 * generate-certificate option description:
338 #define GENERATE_CERTIFICATE_DESC (certtool_opt_strs+1080)
339 #define GENERATE_CERTIFICATE_NAME (certtool_opt_strs+1110)
340 #define GENERATE_CERTIFICATE_name (certtool_opt_strs+1131)
341 #define GENERATE_CERTIFICATE_FLAGS (OPTST_DISABLED)
344 * generate-proxy option description:
346 #define GENERATE_PROXY_DESC (certtool_opt_strs+1152)
347 #define GENERATE_PROXY_NAME (certtool_opt_strs+1182)
348 #define GENERATE_PROXY_name (certtool_opt_strs+1197)
349 #define GENERATE_PROXY_FLAGS (OPTST_DISABLED)
352 * generate-crl option description:
354 #define GENERATE_CRL_DESC (certtool_opt_strs+1212)
355 #define GENERATE_CRL_NAME (certtool_opt_strs+1227)
356 #define GENERATE_CRL_name (certtool_opt_strs+1240)
357 #define GENERATE_CRL_FLAGS (OPTST_DISABLED)
360 * update-certificate option description:
362 #define UPDATE_CERTIFICATE_DESC (certtool_opt_strs+1253)
363 #define UPDATE_CERTIFICATE_NAME (certtool_opt_strs+1281)
364 #define UPDATE_CERTIFICATE_name (certtool_opt_strs+1300)
365 #define UPDATE_CERTIFICATE_FLAGS (OPTST_DISABLED)
368 * generate-privkey option description:
370 #define GENERATE_PRIVKEY_DESC (certtool_opt_strs+1319)
371 #define GENERATE_PRIVKEY_NAME (certtool_opt_strs+1342)
372 #define GENERATE_PRIVKEY_name (certtool_opt_strs+1359)
373 #define GENERATE_PRIVKEY_FLAGS (OPTST_DISABLED)
376 * generate-request option description:
378 #define GENERATE_REQUEST_DESC (certtool_opt_strs+1376)
379 #define GENERATE_REQUEST_NAME (certtool_opt_strs+1416)
380 #define GENERATE_REQUEST_name (certtool_opt_strs+1433)
381 #define GENERATE_REQUEST_FLAGS (OPTST_DISABLED)
384 * verify-chain option description:
386 #define VERIFY_CHAIN_DESC (certtool_opt_strs+1450)
387 #define VERIFY_CHAIN_NAME (certtool_opt_strs+1490)
388 #define VERIFY_CHAIN_name (certtool_opt_strs+1503)
389 #define VERIFY_CHAIN_FLAGS (OPTST_DISABLED)
392 * verify option description with
393 * "Must also have options" and "Incompatible options":
395 #define VERIFY_DESC (certtool_opt_strs+1516)
396 #define VERIFY_NAME (certtool_opt_strs+1577)
397 #define VERIFY_name (certtool_opt_strs+1584)
398 static int const aVerifyMustList[] = {
399 INDEX_OPT_LOAD_CA_CERTIFICATE, NO_EQUIVALENT };
400 #define VERIFY_FLAGS (OPTST_DISABLED)
403 * verify-crl option description with
404 * "Must also have options" and "Incompatible options":
406 #define VERIFY_CRL_DESC (certtool_opt_strs+1591)
407 #define VERIFY_CRL_NAME (certtool_opt_strs+1626)
408 #define VERIFY_CRL_name (certtool_opt_strs+1637)
409 static int const aVerify_CrlMustList[] = {
410 INDEX_OPT_LOAD_CA_CERTIFICATE, NO_EQUIVALENT };
411 #define VERIFY_CRL_FLAGS (OPTST_DISABLED)
414 * generate-dh-params option description:
416 #define GENERATE_DH_PARAMS_DESC (certtool_opt_strs+1648)
417 #define GENERATE_DH_PARAMS_NAME (certtool_opt_strs+1700)
418 #define GENERATE_DH_PARAMS_name (certtool_opt_strs+1719)
419 #define GENERATE_DH_PARAMS_FLAGS (OPTST_DISABLED)
422 * get-dh-params option description:
424 #define GET_DH_PARAMS_DESC (certtool_opt_strs+1738)
425 #define GET_DH_PARAMS_NAME (certtool_opt_strs+1798)
426 #define GET_DH_PARAMS_name (certtool_opt_strs+1812)
427 #define GET_DH_PARAMS_FLAGS (OPTST_DISABLED)
430 * dh-info option description:
432 #define DH_INFO_DESC (certtool_opt_strs+1826)
433 #define DH_INFO_NAME (certtool_opt_strs+1886)
434 #define DH_INFO_name (certtool_opt_strs+1894)
435 #define DH_INFO_FLAGS (OPTST_DISABLED)
438 * load-privkey option description:
440 #define LOAD_PRIVKEY_DESC (certtool_opt_strs+1902)
441 #define LOAD_PRIVKEY_NAME (certtool_opt_strs+1927)
442 #define LOAD_PRIVKEY_name (certtool_opt_strs+1940)
443 #define LOAD_PRIVKEY_FLAGS (OPTST_DISABLED \
444 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
447 * load-pubkey option description:
449 #define LOAD_PUBKEY_DESC (certtool_opt_strs+1953)
450 #define LOAD_PUBKEY_NAME (certtool_opt_strs+1977)
451 #define LOAD_PUBKEY_name (certtool_opt_strs+1989)
452 #define LOAD_PUBKEY_FLAGS (OPTST_DISABLED \
453 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
456 * load-request option description:
458 #define LOAD_REQUEST_DESC (certtool_opt_strs+2001)
459 #define LOAD_REQUEST_NAME (certtool_opt_strs+2034)
460 #define LOAD_REQUEST_name (certtool_opt_strs+2047)
461 #define LOAD_REQUEST_FLAGS (OPTST_DISABLED \
462 | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
465 * load-certificate option description:
467 #define LOAD_CERTIFICATE_DESC (certtool_opt_strs+2060)
468 #define LOAD_CERTIFICATE_NAME (certtool_opt_strs+2085)
469 #define LOAD_CERTIFICATE_name (certtool_opt_strs+2102)
470 #define LOAD_CERTIFICATE_FLAGS (OPTST_DISABLED \
471 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
474 * load-ca-privkey option description:
476 #define LOAD_CA_PRIVKEY_DESC (certtool_opt_strs+2119)
477 #define LOAD_CA_PRIVKEY_NAME (certtool_opt_strs+2170)
478 #define LOAD_CA_PRIVKEY_name (certtool_opt_strs+2186)
479 #define LOAD_CA_PRIVKEY_FLAGS (OPTST_DISABLED \
480 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
483 * load-ca-certificate option description:
485 #define LOAD_CA_CERTIFICATE_DESC (certtool_opt_strs+2202)
486 #define LOAD_CA_CERTIFICATE_NAME (certtool_opt_strs+2253)
487 #define LOAD_CA_CERTIFICATE_name (certtool_opt_strs+2273)
488 #define LOAD_CA_CERTIFICATE_FLAGS (OPTST_DISABLED \
489 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
492 * password option description:
494 #define PASSWORD_DESC (certtool_opt_strs+2293)
495 #define PASSWORD_NAME (certtool_opt_strs+2309)
496 #define PASSWORD_name (certtool_opt_strs+2318)
497 #define PASSWORD_FLAGS (OPTST_DISABLED \
498 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
501 * null-password option description:
503 #define NULL_PASSWORD_DESC (certtool_opt_strs+2327)
504 #define NULL_PASSWORD_NAME (certtool_opt_strs+2351)
505 #define NULL_PASSWORD_name (certtool_opt_strs+2365)
506 #define NULL_PASSWORD_FLAGS (OPTST_DISABLED)
509 * certificate-info option description:
511 #define CERTIFICATE_INFO_DESC (certtool_opt_strs+2379)
512 #define CERTIFICATE_INFO_NAME (certtool_opt_strs+2422)
513 #define CERTIFICATE_INFO_name (certtool_opt_strs+2439)
514 #define CERTIFICATE_INFO_FLAGS (OPTST_DISABLED)
517 * certificate-pubkey option description:
519 #define CERTIFICATE_PUBKEY_DESC (certtool_opt_strs+2456)
520 #define CERTIFICATE_PUBKEY_NAME (certtool_opt_strs+2487)
521 #define CERTIFICATE_PUBKEY_name (certtool_opt_strs+2506)
522 #define CERTIFICATE_PUBKEY_FLAGS (OPTST_DISABLED)
525 * pgp-certificate-info option description:
527 #define PGP_CERTIFICATE_INFO_DESC (certtool_opt_strs+2525)
528 #define PGP_CERTIFICATE_INFO_NAME (certtool_opt_strs+2576)
529 #define PGP_CERTIFICATE_INFO_name (certtool_opt_strs+2597)
530 #define PGP_CERTIFICATE_INFO_FLAGS (OPTST_DISABLED)
533 * pgp-ring-info option description:
535 #define PGP_RING_INFO_DESC (certtool_opt_strs+2618)
536 #define PGP_RING_INFO_NAME (certtool_opt_strs+2675)
537 #define PGP_RING_INFO_name (certtool_opt_strs+2689)
538 #define PGP_RING_INFO_FLAGS (OPTST_DISABLED)
541 * crl-info option description:
543 #define CRL_INFO_DESC (certtool_opt_strs+2703)
544 #define CRL_INFO_NAME (certtool_opt_strs+2748)
545 #define CRL_INFO_name (certtool_opt_strs+2757)
546 #define CRL_INFO_FLAGS (OPTST_DISABLED)
549 * crq-info option description:
551 #define CRQ_INFO_DESC (certtool_opt_strs+2766)
552 #define CRQ_INFO_NAME (certtool_opt_strs+2817)
553 #define CRQ_INFO_name (certtool_opt_strs+2826)
554 #define CRQ_INFO_FLAGS (OPTST_DISABLED)
557 * no-crq-extensions option description:
559 #define NO_CRQ_EXTENSIONS_DESC (certtool_opt_strs+2835)
560 #define NO_CRQ_EXTENSIONS_NAME (certtool_opt_strs+2881)
561 #define NO_CRQ_EXTENSIONS_name (certtool_opt_strs+2899)
562 #define NO_CRQ_EXTENSIONS_FLAGS (OPTST_DISABLED)
565 * p12-info option description:
567 #define P12_INFO_DESC (certtool_opt_strs+2917)
568 #define P12_INFO_NAME (certtool_opt_strs+2959)
569 #define P12_INFO_name (certtool_opt_strs+2968)
570 #define P12_INFO_FLAGS (OPTST_DISABLED)
573 * p7-info option description:
575 #define P7_INFO_DESC (certtool_opt_strs+2977)
576 #define P7_INFO_NAME (certtool_opt_strs+3018)
577 #define P7_INFO_name (certtool_opt_strs+3026)
578 #define P7_INFO_FLAGS (OPTST_DISABLED)
581 * smime-to-p7 option description:
583 #define SMIME_TO_P7_DESC (certtool_opt_strs+3034)
584 #define SMIME_TO_P7_NAME (certtool_opt_strs+3070)
585 #define SMIME_TO_P7_name (certtool_opt_strs+3082)
586 #define SMIME_TO_P7_FLAGS (OPTST_DISABLED)
589 * key-info option description:
591 #define KEY_INFO_DESC (certtool_opt_strs+3094)
592 #define KEY_INFO_NAME (certtool_opt_strs+3129)
593 #define KEY_INFO_name (certtool_opt_strs+3138)
594 #define KEY_INFO_FLAGS (OPTST_DISABLED)
597 * pgp-key-info option description:
599 #define PGP_KEY_INFO_DESC (certtool_opt_strs+3147)
600 #define PGP_KEY_INFO_NAME (certtool_opt_strs+3191)
601 #define PGP_KEY_INFO_name (certtool_opt_strs+3204)
602 #define PGP_KEY_INFO_FLAGS (OPTST_DISABLED)
605 * pubkey-info option description:
607 #define PUBKEY_INFO_DESC (certtool_opt_strs+3217)
608 #define PUBKEY_INFO_NAME (certtool_opt_strs+3251)
609 #define PUBKEY_INFO_name (certtool_opt_strs+3263)
610 #define PUBKEY_INFO_FLAGS (OPTST_DISABLED)
613 * v1 option description:
615 #define V1_DESC (certtool_opt_strs+3275)
616 #define V1_NAME (certtool_opt_strs+3336)
617 #define V1_name (certtool_opt_strs+3339)
618 #define V1_FLAGS (OPTST_DISABLED)
621 * to-p12 option description with
622 * "Must also have options" and "Incompatible options":
624 #define TO_P12_DESC (certtool_opt_strs+3342)
625 #define TO_P12_NAME (certtool_opt_strs+3372)
626 #define TO_P12_name (certtool_opt_strs+3379)
627 static int const aTo_P12MustList[] = {
628 INDEX_OPT_LOAD_CERTIFICATE, NO_EQUIVALENT };
629 #define TO_P12_FLAGS (OPTST_DISABLED)
632 * to-p8 option description:
634 #define TO_P8_DESC (certtool_opt_strs+3386)
635 #define TO_P8_NAME (certtool_opt_strs+3415)
636 #define TO_P8_name (certtool_opt_strs+3421)
637 #define TO_P8_FLAGS (OPTST_DISABLED)
640 * pkcs8 option description:
642 #define PKCS8_DESC (certtool_opt_strs+3427)
643 #define PKCS8_NAME (certtool_opt_strs+3463)
644 #define PKCS8_name (certtool_opt_strs+3469)
645 #define PKCS8_FLAGS (OPTST_DISABLED)
648 * rsa option description:
650 #define RSA_DESC (certtool_opt_strs+3475)
651 #define RSA_NAME (certtool_opt_strs+3492)
652 #define RSA_name (certtool_opt_strs+3496)
653 #define RSA_FLAGS (OPTST_DISABLED)
656 * dsa option description:
658 #define DSA_DESC (certtool_opt_strs+3500)
659 #define DSA_NAME (certtool_opt_strs+3517)
660 #define DSA_name (certtool_opt_strs+3521)
661 #define DSA_FLAGS (OPTST_DISABLED)
664 * ecc option description:
666 #define ECC_DESC (certtool_opt_strs+3525)
667 #define ECC_NAME (certtool_opt_strs+3550)
668 #define ECC_name (certtool_opt_strs+3554)
669 #define ECC_FLAGS (OPTST_DISABLED)
672 * hash option description:
674 #define HASH_DESC (certtool_opt_strs+3558)
675 #define HASH_NAME (certtool_opt_strs+3593)
676 #define HASH_name (certtool_opt_strs+3598)
677 #define HASH_FLAGS (OPTST_DISABLED \
678 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
681 * inder option description:
683 #define INDER_DESC (certtool_opt_strs+3603)
684 #define INDER_NAME (certtool_opt_strs+3659)
685 #define NOT_INDER_name (certtool_opt_strs+3665)
686 #define NOT_INDER_PFX (certtool_opt_strs+3674)
687 #define INDER_name (NOT_INDER_name + 3)
688 #define INDER_FLAGS (OPTST_DISABLED)
691 * inraw option description:
693 #define INRAW_DESC (certtool_opt_strs+3677)
694 #define INRAW_NAME NULL
695 #define INRAW_name (certtool_opt_strs+3706)
696 #define INRAW_FLAGS (INDER_FLAGS | OPTST_ALIAS)
699 * outder option description:
701 #define OUTDER_DESC (certtool_opt_strs+3712)
702 #define OUTDER_NAME (certtool_opt_strs+3768)
703 #define NOT_OUTDER_name (certtool_opt_strs+3775)
704 #define NOT_OUTDER_PFX (certtool_opt_strs+3674)
705 #define OUTDER_name (NOT_OUTDER_name + 3)
706 #define OUTDER_FLAGS (OPTST_DISABLED)
709 * outraw option description:
711 #define OUTRAW_DESC (certtool_opt_strs+3785)
712 #define OUTRAW_NAME NULL
713 #define OUTRAW_name (certtool_opt_strs+3815)
714 #define OUTRAW_FLAGS (OUTDER_FLAGS | OPTST_ALIAS)
717 * bits option description:
719 #define BITS_DESC (certtool_opt_strs+3822)
720 #define BITS_NAME (certtool_opt_strs+3866)
721 #define BITS_name (certtool_opt_strs+3871)
722 #define BITS_FLAGS (OPTST_DISABLED \
723 | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
726 * sec-param option description:
728 #define SEC_PARAM_DESC (certtool_opt_strs+3876)
729 #define SEC_PARAM_NAME (certtool_opt_strs+3939)
730 #define SEC_PARAM_name (certtool_opt_strs+3949)
731 #define SEC_PARAM_FLAGS (OPTST_DISABLED \
732 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
735 * disable-quick-random option description:
737 #define DISABLE_QUICK_RANDOM_DESC (certtool_opt_strs+3959)
738 #define DISABLE_QUICK_RANDOM_NAME (certtool_opt_strs+3969)
739 #define DISABLE_QUICK_RANDOM_name (certtool_opt_strs+3990)
740 #define DISABLE_QUICK_RANDOM_FLAGS (OPTST_DISABLED)
743 * template option description:
745 #define TEMPLATE_DESC (certtool_opt_strs+4011)
746 #define TEMPLATE_NAME (certtool_opt_strs+4062)
747 #define TEMPLATE_name (certtool_opt_strs+4071)
748 #define TEMPLATE_FLAGS (OPTST_DISABLED \
749 | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
752 * pkcs-cipher option description:
754 #define PKCS_CIPHER_DESC (certtool_opt_strs+4080)
755 #define PKCS_CIPHER_NAME (certtool_opt_strs+4125)
756 #define PKCS_CIPHER_name (certtool_opt_strs+4137)
757 #define PKCS_CIPHER_FLAGS (OPTST_DISABLED \
758 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
761 * dane-rr option description with
762 * "Must also have options" and "Incompatible options":
764 #define DANE_RR_DESC (certtool_opt_strs+4149)
765 #define DANE_RR_NAME (certtool_opt_strs+4203)
766 #define DANE_RR_name (certtool_opt_strs+4211)
767 static int const aDane_RrMustList[] = {
768 INDEX_OPT_DANE_HOST, NO_EQUIVALENT };
769 #define DANE_RR_FLAGS (OPTST_DISABLED)
772 * dane-host option description:
774 #define DANE_HOST_DESC (certtool_opt_strs+4219)
775 #define DANE_HOST_NAME (certtool_opt_strs+4266)
776 #define DANE_HOST_name (certtool_opt_strs+4276)
777 #define DANE_HOST_FLAGS (OPTST_DISABLED \
778 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
781 * dane-proto option description:
783 #define DANE_PROTO_DESC (certtool_opt_strs+4286)
784 #define DANE_PROTO_NAME (certtool_opt_strs+4333)
785 #define DANE_PROTO_name (certtool_opt_strs+4344)
786 #define DANE_PROTO_FLAGS (OPTST_DISABLED \
787 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
790 * dane-port option description:
792 #define DANE_PORT_DESC (certtool_opt_strs+4355)
793 #define DANE_PORT_NAME (certtool_opt_strs+4398)
794 #define DANE_PORT_name (certtool_opt_strs+4408)
795 #define DANE_PORT_FLAGS (OPTST_DISABLED \
796 | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
799 * dane-ca option description:
801 #define DANE_CA_DESC (certtool_opt_strs+4418)
802 #define DANE_CA_NAME (certtool_opt_strs+4493)
803 #define DANE_CA_name (certtool_opt_strs+4501)
804 #define DANE_CA_FLAGS (OPTST_DISABLED)
807 * dane-full-x509 option description:
809 #define DANE_FULL_X509_DESC (certtool_opt_strs+4509)
810 #define DANE_FULL_X509_NAME (certtool_opt_strs+4576)
811 #define DANE_FULL_X509_name (certtool_opt_strs+4591)
812 #define DANE_FULL_X509_FLAGS (OPTST_DISABLED)
815 * dane-local option description:
817 #define DANE_LOCAL_DESC (certtool_opt_strs+4606)
818 #define DANE_LOCAL_NAME (certtool_opt_strs+4664)
819 #define DANE_LOCAL_name (certtool_opt_strs+4675)
820 #define DANE_LOCAL_FLAGS (OPTST_DISABLED)
823 * Help/More_Help/Version option descriptions:
825 #define HELP_DESC (certtool_opt_strs+4686)
826 #define HELP_name (certtool_opt_strs+4730)
827 #ifdef HAVE_WORKING_FORK
828 #define MORE_HELP_DESC (certtool_opt_strs+4735)
829 #define MORE_HELP_name (certtool_opt_strs+4780)
830 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
831 #else
832 #define MORE_HELP_DESC NULL
833 #define MORE_HELP_name NULL
834 #define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
835 #endif
836 #ifdef NO_OPTIONAL_OPT_ARGS
837 # define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
838 #else
839 # define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
840 OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
841 #endif
842 #define VER_DESC (certtool_opt_strs+4790)
843 #define VER_name (certtool_opt_strs+4826)
845 * Declare option callback procedures
847 extern tOptProc
848 optionBooleanVal, optionNestedVal, optionNumericVal,
849 optionPagedUsage, optionPrintVersion, optionResetOpt,
850 optionStackArg, optionTimeDate, optionTimeVal,
851 optionUnstackArg, optionVendorOption;
852 static tOptProc
853 doOptDebug, doOptInfile, doOptInraw,
854 doOptLoad_Request, doOptOutraw, doOptTemplate,
855 doUsageOpt;
856 #define VER_PROC optionPrintVersion
858 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
860 * Define the certtool Option Descriptions.
861 * This is an array of OPTION_CT entries, one for each
862 * option that the certtool program responds to.
864 static tOptDesc optDesc[OPTION_CT] = {
865 { /* entry idx, value */ 0, VALUE_OPT_DEBUG,
866 /* equiv idx, value */ 0, VALUE_OPT_DEBUG,
867 /* equivalenced to */ NO_EQUIVALENT,
868 /* min, max, act ct */ 0, 1, 0,
869 /* opt state flags */ DEBUG_FLAGS, 0,
870 /* last opt argumnt */ { NULL }, /* --debug */
871 /* arg list/cookie */ NULL,
872 /* must/cannot opts */ NULL, NULL,
873 /* option proc */ doOptDebug,
874 /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name,
875 /* disablement strs */ NULL, NULL },
877 { /* entry idx, value */ 1, VALUE_OPT_VERBOSE,
878 /* equiv idx, value */ 1, VALUE_OPT_VERBOSE,
879 /* equivalenced to */ NO_EQUIVALENT,
880 /* min, max, act ct */ 0, NOLIMIT, 0,
881 /* opt state flags */ VERBOSE_FLAGS, 0,
882 /* last opt argumnt */ { NULL }, /* --verbose */
883 /* arg list/cookie */ NULL,
884 /* must/cannot opts */ NULL, NULL,
885 /* option proc */ NULL,
886 /* desc, NAME, name */ VERBOSE_DESC, VERBOSE_NAME, VERBOSE_name,
887 /* disablement strs */ NULL, NULL },
889 { /* entry idx, value */ 2, VALUE_OPT_INFILE,
890 /* equiv idx, value */ 2, VALUE_OPT_INFILE,
891 /* equivalenced to */ NO_EQUIVALENT,
892 /* min, max, act ct */ 0, 1, 0,
893 /* opt state flags */ INFILE_FLAGS, 0,
894 /* last opt argumnt */ { NULL }, /* --infile */
895 /* arg list/cookie */ NULL,
896 /* must/cannot opts */ NULL, NULL,
897 /* option proc */ doOptInfile,
898 /* desc, NAME, name */ INFILE_DESC, INFILE_NAME, INFILE_name,
899 /* disablement strs */ NULL, NULL },
901 { /* entry idx, value */ 3, VALUE_OPT_OUTFILE,
902 /* equiv idx, value */ 3, VALUE_OPT_OUTFILE,
903 /* equivalenced to */ NO_EQUIVALENT,
904 /* min, max, act ct */ 0, 1, 0,
905 /* opt state flags */ OUTFILE_FLAGS, 0,
906 /* last opt argumnt */ { NULL }, /* --outfile */
907 /* arg list/cookie */ NULL,
908 /* must/cannot opts */ NULL, NULL,
909 /* option proc */ NULL,
910 /* desc, NAME, name */ OUTFILE_DESC, OUTFILE_NAME, OUTFILE_name,
911 /* disablement strs */ NULL, NULL },
913 { /* entry idx, value */ 4, VALUE_OPT_GENERATE_SELF_SIGNED,
914 /* equiv idx, value */ 4, VALUE_OPT_GENERATE_SELF_SIGNED,
915 /* equivalenced to */ NO_EQUIVALENT,
916 /* min, max, act ct */ 0, 1, 0,
917 /* opt state flags */ GENERATE_SELF_SIGNED_FLAGS, 0,
918 /* last opt argumnt */ { NULL }, /* --generate-self-signed */
919 /* arg list/cookie */ NULL,
920 /* must/cannot opts */ NULL, NULL,
921 /* option proc */ NULL,
922 /* desc, NAME, name */ GENERATE_SELF_SIGNED_DESC, GENERATE_SELF_SIGNED_NAME, GENERATE_SELF_SIGNED_name,
923 /* disablement strs */ NULL, NULL },
925 { /* entry idx, value */ 5, VALUE_OPT_GENERATE_CERTIFICATE,
926 /* equiv idx, value */ 5, VALUE_OPT_GENERATE_CERTIFICATE,
927 /* equivalenced to */ NO_EQUIVALENT,
928 /* min, max, act ct */ 0, 1, 0,
929 /* opt state flags */ GENERATE_CERTIFICATE_FLAGS, 0,
930 /* last opt argumnt */ { NULL }, /* --generate-certificate */
931 /* arg list/cookie */ NULL,
932 /* must/cannot opts */ NULL, NULL,
933 /* option proc */ NULL,
934 /* desc, NAME, name */ GENERATE_CERTIFICATE_DESC, GENERATE_CERTIFICATE_NAME, GENERATE_CERTIFICATE_name,
935 /* disablement strs */ NULL, NULL },
937 { /* entry idx, value */ 6, VALUE_OPT_GENERATE_PROXY,
938 /* equiv idx, value */ 6, VALUE_OPT_GENERATE_PROXY,
939 /* equivalenced to */ NO_EQUIVALENT,
940 /* min, max, act ct */ 0, 1, 0,
941 /* opt state flags */ GENERATE_PROXY_FLAGS, 0,
942 /* last opt argumnt */ { NULL }, /* --generate-proxy */
943 /* arg list/cookie */ NULL,
944 /* must/cannot opts */ NULL, NULL,
945 /* option proc */ NULL,
946 /* desc, NAME, name */ GENERATE_PROXY_DESC, GENERATE_PROXY_NAME, GENERATE_PROXY_name,
947 /* disablement strs */ NULL, NULL },
949 { /* entry idx, value */ 7, VALUE_OPT_GENERATE_CRL,
950 /* equiv idx, value */ 7, VALUE_OPT_GENERATE_CRL,
951 /* equivalenced to */ NO_EQUIVALENT,
952 /* min, max, act ct */ 0, 1, 0,
953 /* opt state flags */ GENERATE_CRL_FLAGS, 0,
954 /* last opt argumnt */ { NULL }, /* --generate-crl */
955 /* arg list/cookie */ NULL,
956 /* must/cannot opts */ NULL, NULL,
957 /* option proc */ NULL,
958 /* desc, NAME, name */ GENERATE_CRL_DESC, GENERATE_CRL_NAME, GENERATE_CRL_name,
959 /* disablement strs */ NULL, NULL },
961 { /* entry idx, value */ 8, VALUE_OPT_UPDATE_CERTIFICATE,
962 /* equiv idx, value */ 8, VALUE_OPT_UPDATE_CERTIFICATE,
963 /* equivalenced to */ NO_EQUIVALENT,
964 /* min, max, act ct */ 0, 1, 0,
965 /* opt state flags */ UPDATE_CERTIFICATE_FLAGS, 0,
966 /* last opt argumnt */ { NULL }, /* --update-certificate */
967 /* arg list/cookie */ NULL,
968 /* must/cannot opts */ NULL, NULL,
969 /* option proc */ NULL,
970 /* desc, NAME, name */ UPDATE_CERTIFICATE_DESC, UPDATE_CERTIFICATE_NAME, UPDATE_CERTIFICATE_name,
971 /* disablement strs */ NULL, NULL },
973 { /* entry idx, value */ 9, VALUE_OPT_GENERATE_PRIVKEY,
974 /* equiv idx, value */ 9, VALUE_OPT_GENERATE_PRIVKEY,
975 /* equivalenced to */ NO_EQUIVALENT,
976 /* min, max, act ct */ 0, 1, 0,
977 /* opt state flags */ GENERATE_PRIVKEY_FLAGS, 0,
978 /* last opt argumnt */ { NULL }, /* --generate-privkey */
979 /* arg list/cookie */ NULL,
980 /* must/cannot opts */ NULL, NULL,
981 /* option proc */ NULL,
982 /* desc, NAME, name */ GENERATE_PRIVKEY_DESC, GENERATE_PRIVKEY_NAME, GENERATE_PRIVKEY_name,
983 /* disablement strs */ NULL, NULL },
985 { /* entry idx, value */ 10, VALUE_OPT_GENERATE_REQUEST,
986 /* equiv idx, value */ 10, VALUE_OPT_GENERATE_REQUEST,
987 /* equivalenced to */ NO_EQUIVALENT,
988 /* min, max, act ct */ 0, 1, 0,
989 /* opt state flags */ GENERATE_REQUEST_FLAGS, 0,
990 /* last opt argumnt */ { NULL }, /* --generate-request */
991 /* arg list/cookie */ NULL,
992 /* must/cannot opts */ NULL, NULL,
993 /* option proc */ NULL,
994 /* desc, NAME, name */ GENERATE_REQUEST_DESC, GENERATE_REQUEST_NAME, GENERATE_REQUEST_name,
995 /* disablement strs */ NULL, NULL },
997 { /* entry idx, value */ 11, VALUE_OPT_VERIFY_CHAIN,
998 /* equiv idx, value */ 11, VALUE_OPT_VERIFY_CHAIN,
999 /* equivalenced to */ NO_EQUIVALENT,
1000 /* min, max, act ct */ 0, 1, 0,
1001 /* opt state flags */ VERIFY_CHAIN_FLAGS, 0,
1002 /* last opt argumnt */ { NULL }, /* --verify-chain */
1003 /* arg list/cookie */ NULL,
1004 /* must/cannot opts */ NULL, NULL,
1005 /* option proc */ NULL,
1006 /* desc, NAME, name */ VERIFY_CHAIN_DESC, VERIFY_CHAIN_NAME, VERIFY_CHAIN_name,
1007 /* disablement strs */ NULL, NULL },
1009 { /* entry idx, value */ 12, VALUE_OPT_VERIFY,
1010 /* equiv idx, value */ 12, VALUE_OPT_VERIFY,
1011 /* equivalenced to */ NO_EQUIVALENT,
1012 /* min, max, act ct */ 0, 1, 0,
1013 /* opt state flags */ VERIFY_FLAGS, 0,
1014 /* last opt argumnt */ { NULL }, /* --verify */
1015 /* arg list/cookie */ NULL,
1016 /* must/cannot opts */ aVerifyMustList, NULL,
1017 /* option proc */ NULL,
1018 /* desc, NAME, name */ VERIFY_DESC, VERIFY_NAME, VERIFY_name,
1019 /* disablement strs */ NULL, NULL },
1021 { /* entry idx, value */ 13, VALUE_OPT_VERIFY_CRL,
1022 /* equiv idx, value */ 13, VALUE_OPT_VERIFY_CRL,
1023 /* equivalenced to */ NO_EQUIVALENT,
1024 /* min, max, act ct */ 0, 1, 0,
1025 /* opt state flags */ VERIFY_CRL_FLAGS, 0,
1026 /* last opt argumnt */ { NULL }, /* --verify-crl */
1027 /* arg list/cookie */ NULL,
1028 /* must/cannot opts */ aVerify_CrlMustList, NULL,
1029 /* option proc */ NULL,
1030 /* desc, NAME, name */ VERIFY_CRL_DESC, VERIFY_CRL_NAME, VERIFY_CRL_name,
1031 /* disablement strs */ NULL, NULL },
1033 { /* entry idx, value */ 14, VALUE_OPT_GENERATE_DH_PARAMS,
1034 /* equiv idx, value */ 14, VALUE_OPT_GENERATE_DH_PARAMS,
1035 /* equivalenced to */ NO_EQUIVALENT,
1036 /* min, max, act ct */ 0, 1, 0,
1037 /* opt state flags */ GENERATE_DH_PARAMS_FLAGS, 0,
1038 /* last opt argumnt */ { NULL }, /* --generate-dh-params */
1039 /* arg list/cookie */ NULL,
1040 /* must/cannot opts */ NULL, NULL,
1041 /* option proc */ NULL,
1042 /* desc, NAME, name */ GENERATE_DH_PARAMS_DESC, GENERATE_DH_PARAMS_NAME, GENERATE_DH_PARAMS_name,
1043 /* disablement strs */ NULL, NULL },
1045 { /* entry idx, value */ 15, VALUE_OPT_GET_DH_PARAMS,
1046 /* equiv idx, value */ 15, VALUE_OPT_GET_DH_PARAMS,
1047 /* equivalenced to */ NO_EQUIVALENT,
1048 /* min, max, act ct */ 0, 1, 0,
1049 /* opt state flags */ GET_DH_PARAMS_FLAGS, 0,
1050 /* last opt argumnt */ { NULL }, /* --get-dh-params */
1051 /* arg list/cookie */ NULL,
1052 /* must/cannot opts */ NULL, NULL,
1053 /* option proc */ NULL,
1054 /* desc, NAME, name */ GET_DH_PARAMS_DESC, GET_DH_PARAMS_NAME, GET_DH_PARAMS_name,
1055 /* disablement strs */ NULL, NULL },
1057 { /* entry idx, value */ 16, VALUE_OPT_DH_INFO,
1058 /* equiv idx, value */ 16, VALUE_OPT_DH_INFO,
1059 /* equivalenced to */ NO_EQUIVALENT,
1060 /* min, max, act ct */ 0, 1, 0,
1061 /* opt state flags */ DH_INFO_FLAGS, 0,
1062 /* last opt argumnt */ { NULL }, /* --dh-info */
1063 /* arg list/cookie */ NULL,
1064 /* must/cannot opts */ NULL, NULL,
1065 /* option proc */ NULL,
1066 /* desc, NAME, name */ DH_INFO_DESC, DH_INFO_NAME, DH_INFO_name,
1067 /* disablement strs */ NULL, NULL },
1069 { /* entry idx, value */ 17, VALUE_OPT_LOAD_PRIVKEY,
1070 /* equiv idx, value */ 17, VALUE_OPT_LOAD_PRIVKEY,
1071 /* equivalenced to */ NO_EQUIVALENT,
1072 /* min, max, act ct */ 0, 1, 0,
1073 /* opt state flags */ LOAD_PRIVKEY_FLAGS, 0,
1074 /* last opt argumnt */ { NULL }, /* --load-privkey */
1075 /* arg list/cookie */ NULL,
1076 /* must/cannot opts */ NULL, NULL,
1077 /* option proc */ NULL,
1078 /* desc, NAME, name */ LOAD_PRIVKEY_DESC, LOAD_PRIVKEY_NAME, LOAD_PRIVKEY_name,
1079 /* disablement strs */ NULL, NULL },
1081 { /* entry idx, value */ 18, VALUE_OPT_LOAD_PUBKEY,
1082 /* equiv idx, value */ 18, VALUE_OPT_LOAD_PUBKEY,
1083 /* equivalenced to */ NO_EQUIVALENT,
1084 /* min, max, act ct */ 0, 1, 0,
1085 /* opt state flags */ LOAD_PUBKEY_FLAGS, 0,
1086 /* last opt argumnt */ { NULL }, /* --load-pubkey */
1087 /* arg list/cookie */ NULL,
1088 /* must/cannot opts */ NULL, NULL,
1089 /* option proc */ NULL,
1090 /* desc, NAME, name */ LOAD_PUBKEY_DESC, LOAD_PUBKEY_NAME, LOAD_PUBKEY_name,
1091 /* disablement strs */ NULL, NULL },
1093 { /* entry idx, value */ 19, VALUE_OPT_LOAD_REQUEST,
1094 /* equiv idx, value */ 19, VALUE_OPT_LOAD_REQUEST,
1095 /* equivalenced to */ NO_EQUIVALENT,
1096 /* min, max, act ct */ 0, 1, 0,
1097 /* opt state flags */ LOAD_REQUEST_FLAGS, 0,
1098 /* last opt argumnt */ { NULL }, /* --load-request */
1099 /* arg list/cookie */ NULL,
1100 /* must/cannot opts */ NULL, NULL,
1101 /* option proc */ doOptLoad_Request,
1102 /* desc, NAME, name */ LOAD_REQUEST_DESC, LOAD_REQUEST_NAME, LOAD_REQUEST_name,
1103 /* disablement strs */ NULL, NULL },
1105 { /* entry idx, value */ 20, VALUE_OPT_LOAD_CERTIFICATE,
1106 /* equiv idx, value */ 20, VALUE_OPT_LOAD_CERTIFICATE,
1107 /* equivalenced to */ NO_EQUIVALENT,
1108 /* min, max, act ct */ 0, 1, 0,
1109 /* opt state flags */ LOAD_CERTIFICATE_FLAGS, 0,
1110 /* last opt argumnt */ { NULL }, /* --load-certificate */
1111 /* arg list/cookie */ NULL,
1112 /* must/cannot opts */ NULL, NULL,
1113 /* option proc */ NULL,
1114 /* desc, NAME, name */ LOAD_CERTIFICATE_DESC, LOAD_CERTIFICATE_NAME, LOAD_CERTIFICATE_name,
1115 /* disablement strs */ NULL, NULL },
1117 { /* entry idx, value */ 21, VALUE_OPT_LOAD_CA_PRIVKEY,
1118 /* equiv idx, value */ 21, VALUE_OPT_LOAD_CA_PRIVKEY,
1119 /* equivalenced to */ NO_EQUIVALENT,
1120 /* min, max, act ct */ 0, 1, 0,
1121 /* opt state flags */ LOAD_CA_PRIVKEY_FLAGS, 0,
1122 /* last opt argumnt */ { NULL }, /* --load-ca-privkey */
1123 /* arg list/cookie */ NULL,
1124 /* must/cannot opts */ NULL, NULL,
1125 /* option proc */ NULL,
1126 /* desc, NAME, name */ LOAD_CA_PRIVKEY_DESC, LOAD_CA_PRIVKEY_NAME, LOAD_CA_PRIVKEY_name,
1127 /* disablement strs */ NULL, NULL },
1129 { /* entry idx, value */ 22, VALUE_OPT_LOAD_CA_CERTIFICATE,
1130 /* equiv idx, value */ 22, VALUE_OPT_LOAD_CA_CERTIFICATE,
1131 /* equivalenced to */ NO_EQUIVALENT,
1132 /* min, max, act ct */ 0, 1, 0,
1133 /* opt state flags */ LOAD_CA_CERTIFICATE_FLAGS, 0,
1134 /* last opt argumnt */ { NULL }, /* --load-ca-certificate */
1135 /* arg list/cookie */ NULL,
1136 /* must/cannot opts */ NULL, NULL,
1137 /* option proc */ NULL,
1138 /* desc, NAME, name */ LOAD_CA_CERTIFICATE_DESC, LOAD_CA_CERTIFICATE_NAME, LOAD_CA_CERTIFICATE_name,
1139 /* disablement strs */ NULL, NULL },
1141 { /* entry idx, value */ 23, VALUE_OPT_PASSWORD,
1142 /* equiv idx, value */ 23, VALUE_OPT_PASSWORD,
1143 /* equivalenced to */ NO_EQUIVALENT,
1144 /* min, max, act ct */ 0, 1, 0,
1145 /* opt state flags */ PASSWORD_FLAGS, 0,
1146 /* last opt argumnt */ { NULL }, /* --password */
1147 /* arg list/cookie */ NULL,
1148 /* must/cannot opts */ NULL, NULL,
1149 /* option proc */ NULL,
1150 /* desc, NAME, name */ PASSWORD_DESC, PASSWORD_NAME, PASSWORD_name,
1151 /* disablement strs */ NULL, NULL },
1153 { /* entry idx, value */ 24, VALUE_OPT_NULL_PASSWORD,
1154 /* equiv idx, value */ 24, VALUE_OPT_NULL_PASSWORD,
1155 /* equivalenced to */ NO_EQUIVALENT,
1156 /* min, max, act ct */ 0, 1, 0,
1157 /* opt state flags */ NULL_PASSWORD_FLAGS, 0,
1158 /* last opt argumnt */ { NULL }, /* --null-password */
1159 /* arg list/cookie */ NULL,
1160 /* must/cannot opts */ NULL, NULL,
1161 /* option proc */ NULL,
1162 /* desc, NAME, name */ NULL_PASSWORD_DESC, NULL_PASSWORD_NAME, NULL_PASSWORD_name,
1163 /* disablement strs */ NULL, NULL },
1165 { /* entry idx, value */ 25, VALUE_OPT_CERTIFICATE_INFO,
1166 /* equiv idx, value */ 25, VALUE_OPT_CERTIFICATE_INFO,
1167 /* equivalenced to */ NO_EQUIVALENT,
1168 /* min, max, act ct */ 0, 1, 0,
1169 /* opt state flags */ CERTIFICATE_INFO_FLAGS, 0,
1170 /* last opt argumnt */ { NULL }, /* --certificate-info */
1171 /* arg list/cookie */ NULL,
1172 /* must/cannot opts */ NULL, NULL,
1173 /* option proc */ NULL,
1174 /* desc, NAME, name */ CERTIFICATE_INFO_DESC, CERTIFICATE_INFO_NAME, CERTIFICATE_INFO_name,
1175 /* disablement strs */ NULL, NULL },
1177 { /* entry idx, value */ 26, VALUE_OPT_CERTIFICATE_PUBKEY,
1178 /* equiv idx, value */ 26, VALUE_OPT_CERTIFICATE_PUBKEY,
1179 /* equivalenced to */ NO_EQUIVALENT,
1180 /* min, max, act ct */ 0, 1, 0,
1181 /* opt state flags */ CERTIFICATE_PUBKEY_FLAGS, 0,
1182 /* last opt argumnt */ { NULL }, /* --certificate-pubkey */
1183 /* arg list/cookie */ NULL,
1184 /* must/cannot opts */ NULL, NULL,
1185 /* option proc */ NULL,
1186 /* desc, NAME, name */ CERTIFICATE_PUBKEY_DESC, CERTIFICATE_PUBKEY_NAME, CERTIFICATE_PUBKEY_name,
1187 /* disablement strs */ NULL, NULL },
1189 { /* entry idx, value */ 27, VALUE_OPT_PGP_CERTIFICATE_INFO,
1190 /* equiv idx, value */ 27, VALUE_OPT_PGP_CERTIFICATE_INFO,
1191 /* equivalenced to */ NO_EQUIVALENT,
1192 /* min, max, act ct */ 0, 1, 0,
1193 /* opt state flags */ PGP_CERTIFICATE_INFO_FLAGS, 0,
1194 /* last opt argumnt */ { NULL }, /* --pgp-certificate-info */
1195 /* arg list/cookie */ NULL,
1196 /* must/cannot opts */ NULL, NULL,
1197 /* option proc */ NULL,
1198 /* desc, NAME, name */ PGP_CERTIFICATE_INFO_DESC, PGP_CERTIFICATE_INFO_NAME, PGP_CERTIFICATE_INFO_name,
1199 /* disablement strs */ NULL, NULL },
1201 { /* entry idx, value */ 28, VALUE_OPT_PGP_RING_INFO,
1202 /* equiv idx, value */ 28, VALUE_OPT_PGP_RING_INFO,
1203 /* equivalenced to */ NO_EQUIVALENT,
1204 /* min, max, act ct */ 0, 1, 0,
1205 /* opt state flags */ PGP_RING_INFO_FLAGS, 0,
1206 /* last opt argumnt */ { NULL }, /* --pgp-ring-info */
1207 /* arg list/cookie */ NULL,
1208 /* must/cannot opts */ NULL, NULL,
1209 /* option proc */ NULL,
1210 /* desc, NAME, name */ PGP_RING_INFO_DESC, PGP_RING_INFO_NAME, PGP_RING_INFO_name,
1211 /* disablement strs */ NULL, NULL },
1213 { /* entry idx, value */ 29, VALUE_OPT_CRL_INFO,
1214 /* equiv idx, value */ 29, VALUE_OPT_CRL_INFO,
1215 /* equivalenced to */ NO_EQUIVALENT,
1216 /* min, max, act ct */ 0, 1, 0,
1217 /* opt state flags */ CRL_INFO_FLAGS, 0,
1218 /* last opt argumnt */ { NULL }, /* --crl-info */
1219 /* arg list/cookie */ NULL,
1220 /* must/cannot opts */ NULL, NULL,
1221 /* option proc */ NULL,
1222 /* desc, NAME, name */ CRL_INFO_DESC, CRL_INFO_NAME, CRL_INFO_name,
1223 /* disablement strs */ NULL, NULL },
1225 { /* entry idx, value */ 30, VALUE_OPT_CRQ_INFO,
1226 /* equiv idx, value */ 30, VALUE_OPT_CRQ_INFO,
1227 /* equivalenced to */ NO_EQUIVALENT,
1228 /* min, max, act ct */ 0, 1, 0,
1229 /* opt state flags */ CRQ_INFO_FLAGS, 0,
1230 /* last opt argumnt */ { NULL }, /* --crq-info */
1231 /* arg list/cookie */ NULL,
1232 /* must/cannot opts */ NULL, NULL,
1233 /* option proc */ NULL,
1234 /* desc, NAME, name */ CRQ_INFO_DESC, CRQ_INFO_NAME, CRQ_INFO_name,
1235 /* disablement strs */ NULL, NULL },
1237 { /* entry idx, value */ 31, VALUE_OPT_NO_CRQ_EXTENSIONS,
1238 /* equiv idx, value */ 31, VALUE_OPT_NO_CRQ_EXTENSIONS,
1239 /* equivalenced to */ NO_EQUIVALENT,
1240 /* min, max, act ct */ 0, 1, 0,
1241 /* opt state flags */ NO_CRQ_EXTENSIONS_FLAGS, 0,
1242 /* last opt argumnt */ { NULL }, /* --no-crq-extensions */
1243 /* arg list/cookie */ NULL,
1244 /* must/cannot opts */ NULL, NULL,
1245 /* option proc */ NULL,
1246 /* desc, NAME, name */ NO_CRQ_EXTENSIONS_DESC, NO_CRQ_EXTENSIONS_NAME, NO_CRQ_EXTENSIONS_name,
1247 /* disablement strs */ NULL, NULL },
1249 { /* entry idx, value */ 32, VALUE_OPT_P12_INFO,
1250 /* equiv idx, value */ 32, VALUE_OPT_P12_INFO,
1251 /* equivalenced to */ NO_EQUIVALENT,
1252 /* min, max, act ct */ 0, 1, 0,
1253 /* opt state flags */ P12_INFO_FLAGS, 0,
1254 /* last opt argumnt */ { NULL }, /* --p12-info */
1255 /* arg list/cookie */ NULL,
1256 /* must/cannot opts */ NULL, NULL,
1257 /* option proc */ NULL,
1258 /* desc, NAME, name */ P12_INFO_DESC, P12_INFO_NAME, P12_INFO_name,
1259 /* disablement strs */ NULL, NULL },
1261 { /* entry idx, value */ 33, VALUE_OPT_P7_INFO,
1262 /* equiv idx, value */ 33, VALUE_OPT_P7_INFO,
1263 /* equivalenced to */ NO_EQUIVALENT,
1264 /* min, max, act ct */ 0, 1, 0,
1265 /* opt state flags */ P7_INFO_FLAGS, 0,
1266 /* last opt argumnt */ { NULL }, /* --p7-info */
1267 /* arg list/cookie */ NULL,
1268 /* must/cannot opts */ NULL, NULL,
1269 /* option proc */ NULL,
1270 /* desc, NAME, name */ P7_INFO_DESC, P7_INFO_NAME, P7_INFO_name,
1271 /* disablement strs */ NULL, NULL },
1273 { /* entry idx, value */ 34, VALUE_OPT_SMIME_TO_P7,
1274 /* equiv idx, value */ 34, VALUE_OPT_SMIME_TO_P7,
1275 /* equivalenced to */ NO_EQUIVALENT,
1276 /* min, max, act ct */ 0, 1, 0,
1277 /* opt state flags */ SMIME_TO_P7_FLAGS, 0,
1278 /* last opt argumnt */ { NULL }, /* --smime-to-p7 */
1279 /* arg list/cookie */ NULL,
1280 /* must/cannot opts */ NULL, NULL,
1281 /* option proc */ NULL,
1282 /* desc, NAME, name */ SMIME_TO_P7_DESC, SMIME_TO_P7_NAME, SMIME_TO_P7_name,
1283 /* disablement strs */ NULL, NULL },
1285 { /* entry idx, value */ 35, VALUE_OPT_KEY_INFO,
1286 /* equiv idx, value */ 35, VALUE_OPT_KEY_INFO,
1287 /* equivalenced to */ NO_EQUIVALENT,
1288 /* min, max, act ct */ 0, 1, 0,
1289 /* opt state flags */ KEY_INFO_FLAGS, 0,
1290 /* last opt argumnt */ { NULL }, /* --key-info */
1291 /* arg list/cookie */ NULL,
1292 /* must/cannot opts */ NULL, NULL,
1293 /* option proc */ NULL,
1294 /* desc, NAME, name */ KEY_INFO_DESC, KEY_INFO_NAME, KEY_INFO_name,
1295 /* disablement strs */ NULL, NULL },
1297 { /* entry idx, value */ 36, VALUE_OPT_PGP_KEY_INFO,
1298 /* equiv idx, value */ 36, VALUE_OPT_PGP_KEY_INFO,
1299 /* equivalenced to */ NO_EQUIVALENT,
1300 /* min, max, act ct */ 0, 1, 0,
1301 /* opt state flags */ PGP_KEY_INFO_FLAGS, 0,
1302 /* last opt argumnt */ { NULL }, /* --pgp-key-info */
1303 /* arg list/cookie */ NULL,
1304 /* must/cannot opts */ NULL, NULL,
1305 /* option proc */ NULL,
1306 /* desc, NAME, name */ PGP_KEY_INFO_DESC, PGP_KEY_INFO_NAME, PGP_KEY_INFO_name,
1307 /* disablement strs */ NULL, NULL },
1309 { /* entry idx, value */ 37, VALUE_OPT_PUBKEY_INFO,
1310 /* equiv idx, value */ 37, VALUE_OPT_PUBKEY_INFO,
1311 /* equivalenced to */ NO_EQUIVALENT,
1312 /* min, max, act ct */ 0, 1, 0,
1313 /* opt state flags */ PUBKEY_INFO_FLAGS, 0,
1314 /* last opt argumnt */ { NULL }, /* --pubkey-info */
1315 /* arg list/cookie */ NULL,
1316 /* must/cannot opts */ NULL, NULL,
1317 /* option proc */ NULL,
1318 /* desc, NAME, name */ PUBKEY_INFO_DESC, PUBKEY_INFO_NAME, PUBKEY_INFO_name,
1319 /* disablement strs */ NULL, NULL },
1321 { /* entry idx, value */ 38, VALUE_OPT_V1,
1322 /* equiv idx, value */ 38, VALUE_OPT_V1,
1323 /* equivalenced to */ NO_EQUIVALENT,
1324 /* min, max, act ct */ 0, 1, 0,
1325 /* opt state flags */ V1_FLAGS, 0,
1326 /* last opt argumnt */ { NULL }, /* --v1 */
1327 /* arg list/cookie */ NULL,
1328 /* must/cannot opts */ NULL, NULL,
1329 /* option proc */ NULL,
1330 /* desc, NAME, name */ V1_DESC, V1_NAME, V1_name,
1331 /* disablement strs */ NULL, NULL },
1333 { /* entry idx, value */ 39, VALUE_OPT_TO_P12,
1334 /* equiv idx, value */ 39, VALUE_OPT_TO_P12,
1335 /* equivalenced to */ NO_EQUIVALENT,
1336 /* min, max, act ct */ 0, 1, 0,
1337 /* opt state flags */ TO_P12_FLAGS, 0,
1338 /* last opt argumnt */ { NULL }, /* --to-p12 */
1339 /* arg list/cookie */ NULL,
1340 /* must/cannot opts */ aTo_P12MustList, NULL,
1341 /* option proc */ NULL,
1342 /* desc, NAME, name */ TO_P12_DESC, TO_P12_NAME, TO_P12_name,
1343 /* disablement strs */ NULL, NULL },
1345 { /* entry idx, value */ 40, VALUE_OPT_TO_P8,
1346 /* equiv idx, value */ 40, VALUE_OPT_TO_P8,
1347 /* equivalenced to */ NO_EQUIVALENT,
1348 /* min, max, act ct */ 0, 1, 0,
1349 /* opt state flags */ TO_P8_FLAGS, 0,
1350 /* last opt argumnt */ { NULL }, /* --to-p8 */
1351 /* arg list/cookie */ NULL,
1352 /* must/cannot opts */ NULL, NULL,
1353 /* option proc */ NULL,
1354 /* desc, NAME, name */ TO_P8_DESC, TO_P8_NAME, TO_P8_name,
1355 /* disablement strs */ NULL, NULL },
1357 { /* entry idx, value */ 41, VALUE_OPT_PKCS8,
1358 /* equiv idx, value */ 41, VALUE_OPT_PKCS8,
1359 /* equivalenced to */ NO_EQUIVALENT,
1360 /* min, max, act ct */ 0, 1, 0,
1361 /* opt state flags */ PKCS8_FLAGS, 0,
1362 /* last opt argumnt */ { NULL }, /* --pkcs8 */
1363 /* arg list/cookie */ NULL,
1364 /* must/cannot opts */ NULL, NULL,
1365 /* option proc */ NULL,
1366 /* desc, NAME, name */ PKCS8_DESC, PKCS8_NAME, PKCS8_name,
1367 /* disablement strs */ NULL, NULL },
1369 { /* entry idx, value */ 42, VALUE_OPT_RSA,
1370 /* equiv idx, value */ 42, VALUE_OPT_RSA,
1371 /* equivalenced to */ NO_EQUIVALENT,
1372 /* min, max, act ct */ 0, 1, 0,
1373 /* opt state flags */ RSA_FLAGS, 0,
1374 /* last opt argumnt */ { NULL }, /* --rsa */
1375 /* arg list/cookie */ NULL,
1376 /* must/cannot opts */ NULL, NULL,
1377 /* option proc */ NULL,
1378 /* desc, NAME, name */ RSA_DESC, RSA_NAME, RSA_name,
1379 /* disablement strs */ NULL, NULL },
1381 { /* entry idx, value */ 43, VALUE_OPT_DSA,
1382 /* equiv idx, value */ 43, VALUE_OPT_DSA,
1383 /* equivalenced to */ NO_EQUIVALENT,
1384 /* min, max, act ct */ 0, 1, 0,
1385 /* opt state flags */ DSA_FLAGS, 0,
1386 /* last opt argumnt */ { NULL }, /* --dsa */
1387 /* arg list/cookie */ NULL,
1388 /* must/cannot opts */ NULL, NULL,
1389 /* option proc */ NULL,
1390 /* desc, NAME, name */ DSA_DESC, DSA_NAME, DSA_name,
1391 /* disablement strs */ NULL, NULL },
1393 { /* entry idx, value */ 44, VALUE_OPT_ECC,
1394 /* equiv idx, value */ 44, VALUE_OPT_ECC,
1395 /* equivalenced to */ NO_EQUIVALENT,
1396 /* min, max, act ct */ 0, 1, 0,
1397 /* opt state flags */ ECC_FLAGS, 0,
1398 /* last opt argumnt */ { NULL }, /* --ecc */
1399 /* arg list/cookie */ NULL,
1400 /* must/cannot opts */ NULL, NULL,
1401 /* option proc */ NULL,
1402 /* desc, NAME, name */ ECC_DESC, ECC_NAME, ECC_name,
1403 /* disablement strs */ NULL, NULL },
1405 { /* entry idx, value */ 45, VALUE_OPT_HASH,
1406 /* equiv idx, value */ 45, VALUE_OPT_HASH,
1407 /* equivalenced to */ NO_EQUIVALENT,
1408 /* min, max, act ct */ 0, 1, 0,
1409 /* opt state flags */ HASH_FLAGS, 0,
1410 /* last opt argumnt */ { NULL }, /* --hash */
1411 /* arg list/cookie */ NULL,
1412 /* must/cannot opts */ NULL, NULL,
1413 /* option proc */ NULL,
1414 /* desc, NAME, name */ HASH_DESC, HASH_NAME, HASH_name,
1415 /* disablement strs */ NULL, NULL },
1417 { /* entry idx, value */ 46, VALUE_OPT_INDER,
1418 /* equiv idx, value */ 46, VALUE_OPT_INDER,
1419 /* equivalenced to */ NO_EQUIVALENT,
1420 /* min, max, act ct */ 0, 1, 0,
1421 /* opt state flags */ INDER_FLAGS, 0,
1422 /* last opt argumnt */ { NULL }, /* --inder */
1423 /* arg list/cookie */ NULL,
1424 /* must/cannot opts */ NULL, NULL,
1425 /* option proc */ NULL,
1426 /* desc, NAME, name */ INDER_DESC, INDER_NAME, INDER_name,
1427 /* disablement strs */ NOT_INDER_name, NOT_INDER_PFX },
1429 { /* entry idx, value */ 47, VALUE_OPT_INRAW,
1430 /* equiv idx, value */ 47, VALUE_OPT_INRAW,
1431 /* equivalenced to */ NO_EQUIVALENT,
1432 /* min, max, act ct */ 0, 1, 0,
1433 /* opt state flags */ INRAW_FLAGS, 0,
1434 /* last opt argumnt */ { NULL }, /* --inraw */
1435 /* arg list/cookie */ NULL,
1436 /* must/cannot opts */ NULL, NULL,
1437 /* option proc */ doOptInraw,
1438 /* desc, NAME, name */ INRAW_DESC, INRAW_NAME, INRAW_name,
1439 /* disablement strs */ 0, 0 },
1441 { /* entry idx, value */ 48, VALUE_OPT_OUTDER,
1442 /* equiv idx, value */ 48, VALUE_OPT_OUTDER,
1443 /* equivalenced to */ NO_EQUIVALENT,
1444 /* min, max, act ct */ 0, 1, 0,
1445 /* opt state flags */ OUTDER_FLAGS, 0,
1446 /* last opt argumnt */ { NULL }, /* --outder */
1447 /* arg list/cookie */ NULL,
1448 /* must/cannot opts */ NULL, NULL,
1449 /* option proc */ NULL,
1450 /* desc, NAME, name */ OUTDER_DESC, OUTDER_NAME, OUTDER_name,
1451 /* disablement strs */ NOT_OUTDER_name, NOT_OUTDER_PFX },
1453 { /* entry idx, value */ 49, VALUE_OPT_OUTRAW,
1454 /* equiv idx, value */ 49, VALUE_OPT_OUTRAW,
1455 /* equivalenced to */ NO_EQUIVALENT,
1456 /* min, max, act ct */ 0, 1, 0,
1457 /* opt state flags */ OUTRAW_FLAGS, 0,
1458 /* last opt argumnt */ { NULL }, /* --outraw */
1459 /* arg list/cookie */ NULL,
1460 /* must/cannot opts */ NULL, NULL,
1461 /* option proc */ doOptOutraw,
1462 /* desc, NAME, name */ OUTRAW_DESC, OUTRAW_NAME, OUTRAW_name,
1463 /* disablement strs */ 0, 0 },
1465 { /* entry idx, value */ 50, VALUE_OPT_BITS,
1466 /* equiv idx, value */ 50, VALUE_OPT_BITS,
1467 /* equivalenced to */ NO_EQUIVALENT,
1468 /* min, max, act ct */ 0, 1, 0,
1469 /* opt state flags */ BITS_FLAGS, 0,
1470 /* last opt argumnt */ { NULL }, /* --bits */
1471 /* arg list/cookie */ NULL,
1472 /* must/cannot opts */ NULL, NULL,
1473 /* option proc */ optionNumericVal,
1474 /* desc, NAME, name */ BITS_DESC, BITS_NAME, BITS_name,
1475 /* disablement strs */ NULL, NULL },
1477 { /* entry idx, value */ 51, VALUE_OPT_SEC_PARAM,
1478 /* equiv idx, value */ 51, VALUE_OPT_SEC_PARAM,
1479 /* equivalenced to */ NO_EQUIVALENT,
1480 /* min, max, act ct */ 0, 1, 0,
1481 /* opt state flags */ SEC_PARAM_FLAGS, 0,
1482 /* last opt argumnt */ { NULL }, /* --sec-param */
1483 /* arg list/cookie */ NULL,
1484 /* must/cannot opts */ NULL, NULL,
1485 /* option proc */ NULL,
1486 /* desc, NAME, name */ SEC_PARAM_DESC, SEC_PARAM_NAME, SEC_PARAM_name,
1487 /* disablement strs */ NULL, NULL },
1489 { /* entry idx, value */ 52, VALUE_OPT_DISABLE_QUICK_RANDOM,
1490 /* equiv idx, value */ 52, VALUE_OPT_DISABLE_QUICK_RANDOM,
1491 /* equivalenced to */ NO_EQUIVALENT,
1492 /* min, max, act ct */ 0, 1, 0,
1493 /* opt state flags */ DISABLE_QUICK_RANDOM_FLAGS, 0,
1494 /* last opt argumnt */ { NULL }, /* --disable-quick-random */
1495 /* arg list/cookie */ NULL,
1496 /* must/cannot opts */ NULL, NULL,
1497 /* option proc */ NULL,
1498 /* desc, NAME, name */ DISABLE_QUICK_RANDOM_DESC, DISABLE_QUICK_RANDOM_NAME, DISABLE_QUICK_RANDOM_name,
1499 /* disablement strs */ NULL, NULL },
1501 { /* entry idx, value */ 53, VALUE_OPT_TEMPLATE,
1502 /* equiv idx, value */ 53, VALUE_OPT_TEMPLATE,
1503 /* equivalenced to */ NO_EQUIVALENT,
1504 /* min, max, act ct */ 0, 1, 0,
1505 /* opt state flags */ TEMPLATE_FLAGS, 0,
1506 /* last opt argumnt */ { NULL }, /* --template */
1507 /* arg list/cookie */ NULL,
1508 /* must/cannot opts */ NULL, NULL,
1509 /* option proc */ doOptTemplate,
1510 /* desc, NAME, name */ TEMPLATE_DESC, TEMPLATE_NAME, TEMPLATE_name,
1511 /* disablement strs */ NULL, NULL },
1513 { /* entry idx, value */ 54, VALUE_OPT_PKCS_CIPHER,
1514 /* equiv idx, value */ 54, VALUE_OPT_PKCS_CIPHER,
1515 /* equivalenced to */ NO_EQUIVALENT,
1516 /* min, max, act ct */ 0, 1, 0,
1517 /* opt state flags */ PKCS_CIPHER_FLAGS, 0,
1518 /* last opt argumnt */ { NULL }, /* --pkcs-cipher */
1519 /* arg list/cookie */ NULL,
1520 /* must/cannot opts */ NULL, NULL,
1521 /* option proc */ NULL,
1522 /* desc, NAME, name */ PKCS_CIPHER_DESC, PKCS_CIPHER_NAME, PKCS_CIPHER_name,
1523 /* disablement strs */ NULL, NULL },
1525 { /* entry idx, value */ 55, VALUE_OPT_DANE_RR,
1526 /* equiv idx, value */ 55, VALUE_OPT_DANE_RR,
1527 /* equivalenced to */ NO_EQUIVALENT,
1528 /* min, max, act ct */ 0, 1, 0,
1529 /* opt state flags */ DANE_RR_FLAGS, 0,
1530 /* last opt argumnt */ { NULL }, /* --dane-rr */
1531 /* arg list/cookie */ NULL,
1532 /* must/cannot opts */ aDane_RrMustList, NULL,
1533 /* option proc */ NULL,
1534 /* desc, NAME, name */ DANE_RR_DESC, DANE_RR_NAME, DANE_RR_name,
1535 /* disablement strs */ NULL, NULL },
1537 { /* entry idx, value */ 56, VALUE_OPT_DANE_HOST,
1538 /* equiv idx, value */ 56, VALUE_OPT_DANE_HOST,
1539 /* equivalenced to */ NO_EQUIVALENT,
1540 /* min, max, act ct */ 0, 1, 0,
1541 /* opt state flags */ DANE_HOST_FLAGS, 0,
1542 /* last opt argumnt */ { NULL }, /* --dane-host */
1543 /* arg list/cookie */ NULL,
1544 /* must/cannot opts */ NULL, NULL,
1545 /* option proc */ NULL,
1546 /* desc, NAME, name */ DANE_HOST_DESC, DANE_HOST_NAME, DANE_HOST_name,
1547 /* disablement strs */ NULL, NULL },
1549 { /* entry idx, value */ 57, VALUE_OPT_DANE_PROTO,
1550 /* equiv idx, value */ 57, VALUE_OPT_DANE_PROTO,
1551 /* equivalenced to */ NO_EQUIVALENT,
1552 /* min, max, act ct */ 0, 1, 0,
1553 /* opt state flags */ DANE_PROTO_FLAGS, 0,
1554 /* last opt argumnt */ { NULL }, /* --dane-proto */
1555 /* arg list/cookie */ NULL,
1556 /* must/cannot opts */ NULL, NULL,
1557 /* option proc */ NULL,
1558 /* desc, NAME, name */ DANE_PROTO_DESC, DANE_PROTO_NAME, DANE_PROTO_name,
1559 /* disablement strs */ NULL, NULL },
1561 { /* entry idx, value */ 58, VALUE_OPT_DANE_PORT,
1562 /* equiv idx, value */ 58, VALUE_OPT_DANE_PORT,
1563 /* equivalenced to */ NO_EQUIVALENT,
1564 /* min, max, act ct */ 0, 1, 0,
1565 /* opt state flags */ DANE_PORT_FLAGS, 0,
1566 /* last opt argumnt */ { NULL }, /* --dane-port */
1567 /* arg list/cookie */ NULL,
1568 /* must/cannot opts */ NULL, NULL,
1569 /* option proc */ optionNumericVal,
1570 /* desc, NAME, name */ DANE_PORT_DESC, DANE_PORT_NAME, DANE_PORT_name,
1571 /* disablement strs */ NULL, NULL },
1573 { /* entry idx, value */ 59, VALUE_OPT_DANE_CA,
1574 /* equiv idx, value */ 59, VALUE_OPT_DANE_CA,
1575 /* equivalenced to */ NO_EQUIVALENT,
1576 /* min, max, act ct */ 0, 1, 0,
1577 /* opt state flags */ DANE_CA_FLAGS, 0,
1578 /* last opt argumnt */ { NULL }, /* --dane-ca */
1579 /* arg list/cookie */ NULL,
1580 /* must/cannot opts */ NULL, NULL,
1581 /* option proc */ NULL,
1582 /* desc, NAME, name */ DANE_CA_DESC, DANE_CA_NAME, DANE_CA_name,
1583 /* disablement strs */ NULL, NULL },
1585 { /* entry idx, value */ 60, VALUE_OPT_DANE_FULL_X509,
1586 /* equiv idx, value */ 60, VALUE_OPT_DANE_FULL_X509,
1587 /* equivalenced to */ NO_EQUIVALENT,
1588 /* min, max, act ct */ 0, 1, 0,
1589 /* opt state flags */ DANE_FULL_X509_FLAGS, 0,
1590 /* last opt argumnt */ { NULL }, /* --dane-full-x509 */
1591 /* arg list/cookie */ NULL,
1592 /* must/cannot opts */ NULL, NULL,
1593 /* option proc */ NULL,
1594 /* desc, NAME, name */ DANE_FULL_X509_DESC, DANE_FULL_X509_NAME, DANE_FULL_X509_name,
1595 /* disablement strs */ NULL, NULL },
1597 { /* entry idx, value */ 61, VALUE_OPT_DANE_LOCAL,
1598 /* equiv idx, value */ 61, VALUE_OPT_DANE_LOCAL,
1599 /* equivalenced to */ NO_EQUIVALENT,
1600 /* min, max, act ct */ 0, 1, 0,
1601 /* opt state flags */ DANE_LOCAL_FLAGS, 0,
1602 /* last opt argumnt */ { NULL }, /* --dane-local */
1603 /* arg list/cookie */ NULL,
1604 /* must/cannot opts */ NULL, NULL,
1605 /* option proc */ NULL,
1606 /* desc, NAME, name */ DANE_LOCAL_DESC, DANE_LOCAL_NAME, DANE_LOCAL_name,
1607 /* disablement strs */ NULL, NULL },
1609 { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
1610 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
1611 /* equivalenced to */ NO_EQUIVALENT,
1612 /* min, max, act ct */ 0, 1, 0,
1613 /* opt state flags */ VER_FLAGS, 0,
1614 /* last opt argumnt */ { NULL },
1615 /* arg list/cookie */ NULL,
1616 /* must/cannot opts */ NULL, NULL,
1617 /* option proc */ VER_PROC,
1618 /* desc, NAME, name */ VER_DESC, NULL, VER_name,
1619 /* disablement strs */ NULL, NULL },
1623 { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
1624 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
1625 /* equivalenced to */ NO_EQUIVALENT,
1626 /* min, max, act ct */ 0, 1, 0,
1627 /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0,
1628 /* last opt argumnt */ { NULL },
1629 /* arg list/cookie */ NULL,
1630 /* must/cannot opts */ NULL, NULL,
1631 /* option proc */ doUsageOpt,
1632 /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
1633 /* disablement strs */ NULL, NULL },
1635 { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
1636 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
1637 /* equivalenced to */ NO_EQUIVALENT,
1638 /* min, max, act ct */ 0, 1, 0,
1639 /* opt state flags */ MORE_HELP_FLAGS, 0,
1640 /* last opt argumnt */ { NULL },
1641 /* arg list/cookie */ NULL,
1642 /* must/cannot opts */ NULL, NULL,
1643 /* option proc */ optionPagedUsage,
1644 /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
1645 /* disablement strs */ NULL, NULL }
1649 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
1651 * Define the certtool Option Environment
1653 #define zPROGNAME (certtool_opt_strs+4834)
1654 #define zUsageTitle (certtool_opt_strs+4843)
1655 #define zRcName NULL
1656 #define apzHomeList NULL
1657 #define zBugsAddr (certtool_opt_strs+4950)
1658 #define zExplain (certtool_opt_strs+4969)
1659 #define zDetail (certtool_opt_strs+4972)
1660 #define zFullVersion (certtool_opt_strs+5146)
1661 /* extracted from optcode.tlib near line 350 */
1663 #if defined(ENABLE_NLS)
1664 # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
1665 static tOptionXlateProc translate_option_strings;
1666 #else
1667 # define OPTPROC_BASE OPTPROC_NONE
1668 # define translate_option_strings NULL
1669 #endif /* ENABLE_NLS */
1672 #define certtool_full_usage (NULL)
1674 #define certtool_short_usage (certtool_opt_strs+5165)
1676 #endif /* not defined __doxygen__ */
1679 * Create the static procedure(s) declared above.
1682 * The callout function that invokes the optionUsage function.
1684 * @param pOptions the AutoOpts option description structure
1685 * @param pOptDesc the descriptor for the "help" (usage) option.
1686 * @noreturn
1688 static void
1689 doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
1691 optionUsage(&certtoolOptions, CERTTOOL_EXIT_SUCCESS);
1692 /* NOTREACHED */
1693 (void)pOptDesc;
1694 (void)pOptions;
1697 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1699 * Code to handle the debug option.
1701 * @param pOptions the certtool options data structure
1702 * @param pOptDesc the option descriptor for this option.
1704 static void
1705 doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
1707 static struct {long rmin, rmax;} const rng[1] = {
1708 { 0 , 9999 } };
1709 int ix;
1711 if (pOptions <= OPTPROC_EMIT_LIMIT)
1712 goto emit_ranges;
1713 optionNumericVal(pOptions, pOptDesc);
1715 for (ix = 0; ix < 1; ix++) {
1716 if (pOptDesc->optArg.argInt < rng[ix].rmin)
1717 continue; /* ranges need not be ordered. */
1718 if (pOptDesc->optArg.argInt == rng[ix].rmin)
1719 return;
1720 if (rng[ix].rmax == LONG_MIN)
1721 continue;
1722 if (pOptDesc->optArg.argInt <= rng[ix].rmax)
1723 return;
1726 option_usage_fp = stderr;
1728 emit_ranges:
1730 optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
1733 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1735 * Code to handle the infile option.
1737 * @param pOptions the certtool options data structure
1738 * @param pOptDesc the option descriptor for this option.
1740 static void
1741 doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc)
1743 static teOptFileType const type =
1744 FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
1745 static tuFileMode mode;
1746 #ifndef O_CLOEXEC
1747 # define O_CLOEXEC 0
1748 #endif
1749 mode.file_flags = O_CLOEXEC;
1751 optionFileCheck(pOptions, pOptDesc, type, mode);
1754 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1756 * Code to handle the load-request option.
1758 * @param pOptions the certtool options data structure
1759 * @param pOptDesc the option descriptor for this option.
1761 static void
1762 doOptLoad_Request(tOptions* pOptions, tOptDesc* pOptDesc)
1764 static teOptFileType const type =
1765 FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
1766 static tuFileMode mode;
1767 #ifndef O_CLOEXEC
1768 # define O_CLOEXEC 0
1769 #endif
1770 mode.file_flags = O_CLOEXEC;
1772 optionFileCheck(pOptions, pOptDesc, type, mode);
1775 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1777 * Code to handle the inraw option.
1779 * @param pOptions the certtool options data structure
1780 * @param pOptDesc the option descriptor for this option.
1782 static void
1783 doOptInraw(tOptions* pOptions, tOptDesc* pOptDesc)
1785 int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_INDER);
1786 if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
1787 USAGE(CERTTOOL_EXIT_FAILURE);
1791 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1793 * Code to handle the outraw option.
1795 * @param pOptions the certtool options data structure
1796 * @param pOptDesc the option descriptor for this option.
1798 static void
1799 doOptOutraw(tOptions* pOptions, tOptDesc* pOptDesc)
1801 int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_OUTDER);
1802 if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
1803 USAGE(CERTTOOL_EXIT_FAILURE);
1807 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1809 * Code to handle the template option.
1811 * @param pOptions the certtool options data structure
1812 * @param pOptDesc the option descriptor for this option.
1814 static void
1815 doOptTemplate(tOptions* pOptions, tOptDesc* pOptDesc)
1817 static teOptFileType const type =
1818 FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
1819 static tuFileMode mode;
1820 #ifndef O_CLOEXEC
1821 # define O_CLOEXEC 0
1822 #endif
1823 mode.file_flags = O_CLOEXEC;
1825 optionFileCheck(pOptions, pOptDesc, type, mode);
1827 /* extracted from optmain.tlib near line 1113 */
1830 * The directory containing the data associated with certtool.
1832 #ifndef PKGDATADIR
1833 # define PKGDATADIR ""
1834 #endif
1837 * Information about the person or institution that packaged certtool
1838 * for the current distribution.
1840 #ifndef WITH_PACKAGER
1841 # define certtool_packager_info NULL
1842 #else
1843 static char const certtool_packager_info[] =
1844 "Packaged by " WITH_PACKAGER
1846 # ifdef WITH_PACKAGER_VERSION
1847 " ("WITH_PACKAGER_VERSION")"
1848 # endif
1850 # ifdef WITH_PACKAGER_BUG_REPORTS
1851 "\nReport certtool bugs to " WITH_PACKAGER_BUG_REPORTS
1852 # endif
1853 "\n";
1854 #endif
1855 #ifndef __doxygen__
1857 #endif /* __doxygen__ */
1859 * The option definitions for certtool. The one structure that
1860 * binds them all.
1862 tOptions certtoolOptions = {
1863 OPTIONS_STRUCT_VERSION,
1864 0, NULL, /* original argc + argv */
1865 ( OPTPROC_BASE
1866 + OPTPROC_ERRSTOP
1867 + OPTPROC_SHORTOPT
1868 + OPTPROC_LONGOPT
1869 + OPTPROC_NO_REQ_OPT
1870 + OPTPROC_NEGATIONS
1871 + OPTPROC_NO_ARGS
1872 + OPTPROC_GNUUSAGE
1873 + OPTPROC_MISUSE ),
1874 0, NULL, /* current option index, current option */
1875 NULL, NULL, zPROGNAME,
1876 zRcName, zCopyright, zLicenseDescrip,
1877 zFullVersion, apzHomeList, zUsageTitle,
1878 zExplain, zDetail, optDesc,
1879 zBugsAddr, /* address to send bugs to */
1880 NULL, NULL, /* extensions/saved state */
1881 optionUsage, /* usage procedure */
1882 translate_option_strings, /* translation procedure */
1884 * Indexes to special options
1886 { INDEX_OPT_MORE_HELP, /* more-help option index */
1887 NO_EQUIVALENT, /* save option index */
1888 NO_EQUIVALENT, /* '-#' option index */
1889 NO_EQUIVALENT /* index of default opt */
1891 65 /* full option count */, 62 /* user option count */,
1892 certtool_full_usage, certtool_short_usage,
1893 NULL, NULL,
1894 PKGDATADIR, certtool_packager_info
1897 #if ENABLE_NLS
1898 #include <stdio.h>
1899 #include <stdlib.h>
1900 #include <string.h>
1901 #include <unistd.h>
1902 #include <autoopts/usage-txt.h>
1904 static char* AO_gettext(char const* pz);
1905 static void coerce_it(void** s);
1908 * AutoGen specific wrapper function for gettext.
1909 * It relies on the macro _() to convert from English to the target
1910 * language, then strdup-duplicates the result string.
1912 * @param[in] pz the input text used as a lookup key.
1913 * @returns the translated text (if there is one),
1914 * or the original text (if not).
1916 static char *
1917 AO_gettext(char const* pz)
1919 char* pzRes;
1920 if (pz == NULL)
1921 return NULL;
1922 pzRes = _(pz);
1923 if (pzRes == pz)
1924 return pzRes;
1925 pzRes = strdup(pzRes);
1926 if (pzRes == NULL) {
1927 fputs(_("No memory for duping translated strings\n"), stderr);
1928 exit(CERTTOOL_EXIT_FAILURE);
1930 return pzRes;
1933 static void coerce_it(void** s) { *s = AO_gettext(*s);
1937 * Translate all the translatable strings in the certtoolOptions
1938 * structure defined above. This is done only once.
1940 static void
1941 translate_option_strings(void)
1943 tOptions * const pOpt = &certtoolOptions;
1946 * Guard against re-translation. It won't work. The strings will have
1947 * been changed by the first pass through this code. One shot only.
1949 if (option_usage_text.field_ct != 0) {
1951 * Do the translations. The first pointer follows the field count
1952 * field. The field count field is the size of a pointer.
1954 tOptDesc * pOD = pOpt->pOptDesc;
1955 char ** ppz = (char**)(void*)&(option_usage_text);
1956 int ix = option_usage_text.field_ct;
1958 do {
1959 ppz++;
1960 *ppz = AO_gettext(*ppz);
1961 } while (--ix > 0);
1963 coerce_it((void*)&(pOpt->pzCopyright));
1964 coerce_it((void*)&(pOpt->pzCopyNotice));
1965 coerce_it((void*)&(pOpt->pzFullVersion));
1966 coerce_it((void*)&(pOpt->pzUsageTitle));
1967 coerce_it((void*)&(pOpt->pzExplain));
1968 coerce_it((void*)&(pOpt->pzDetail));
1969 coerce_it((void*)&(pOpt->pzPackager));
1970 coerce_it((void*)&(pOpt->pzShortUsage));
1971 option_usage_text.field_ct = 0;
1973 for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
1974 coerce_it((void*)&(pOD->pzText));
1977 if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
1978 tOptDesc * pOD = pOpt->pOptDesc;
1979 int ix;
1981 for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
1982 coerce_it((void*)&(pOD->pz_Name));
1983 coerce_it((void*)&(pOD->pz_DisableName));
1984 coerce_it((void*)&(pOD->pz_DisablePfx));
1986 /* prevent re-translation */
1987 certtoolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
1991 #endif /* ENABLE_NLS */
1993 #ifdef __cplusplus
1995 #endif
1996 /* certtool-args.c ends here */