[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU gnutls branch, gnutls_3_0_x-2, updated. gnutls_3_0_20-21-g1cf7
From: |
Nikos Mavrogiannopoulos |
Subject: |
[SCM] GNU gnutls branch, gnutls_3_0_x-2, updated. gnutls_3_0_20-21-g1cf7f8a |
Date: |
Fri, 29 Jun 2012 15:56:20 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU gnutls".
http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=1cf7f8a273e7d4f0a7062dd8215c71d746ac410f
The branch, gnutls_3_0_x-2 has been updated
via 1cf7f8a273e7d4f0a7062dd8215c71d746ac410f (commit)
from 744d5c815bd4fb0386bb945b77589f0b89167045 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1cf7f8a273e7d4f0a7062dd8215c71d746ac410f
Author: Nikos Mavrogiannopoulos <address@hidden>
Date: Fri Jun 29 17:56:02 2012 +0200
Added autogen generated files.
-----------------------------------------------------------------------
Summary of changes:
.gitignore | 18 -
src/certtool-args.c | 1782 ++++++++++++++++++++++++++
src/certtool-args.h | 289 +++++
src/cli-args.c | 1423 ++++++++++++++++++++
src/cli-args.h | 255 ++++
src/{libopts/genshell.c => cli-debug-args.c} | 339 ++++--
src/cli-debug-args.h | 189 +++
src/ocsptool-args.c | 1003 +++++++++++++++
src/ocsptool-args.h | 215 ++++
src/p11tool-args.c | 1274 ++++++++++++++++++
src/p11tool-args.h | 245 ++++
src/{libopts/genshell.c => psk-args.c} | 353 ++++--
src/psk-args.h | 191 +++
src/serv-args.c | 1398 ++++++++++++++++++++
src/serv-args.h | 249 ++++
src/srptool-args.c | 631 +++++++++
src/srptool-args.h | 199 +++
17 files changed, 9796 insertions(+), 257 deletions(-)
create mode 100644 src/certtool-args.c
create mode 100644 src/certtool-args.h
create mode 100644 src/cli-args.c
create mode 100644 src/cli-args.h
copy src/{libopts/genshell.c => cli-debug-args.c} (50%)
create mode 100644 src/cli-debug-args.h
create mode 100644 src/ocsptool-args.c
create mode 100644 src/ocsptool-args.h
create mode 100644 src/p11tool-args.c
create mode 100644 src/p11tool-args.h
copy src/{libopts/genshell.c => psk-args.c} (50%)
create mode 100644 src/psk-args.h
create mode 100644 src/serv-args.c
create mode 100644 src/serv-args.h
create mode 100644 src/srptool-args.c
create mode 100644 src/srptool-args.h
diff --git a/.gitignore b/.gitignore
index 09c8801..65eda76 100644
--- a/.gitignore
+++ b/.gitignore
@@ -444,18 +444,12 @@ src/benchmark
src/benchmark-cipher
src/benchmark-tls
src/certtool
-src/certtool-args.c
-src/certtool-args.h
src/cfg/Makefile
src/cfg/Makefile.in
src/cfg/platon/Makefile
src/cfg/platon/Makefile.in
src/cfg/platon/str/Makefile
src/cfg/platon/str/Makefile.in
-src/cli-args.c
-src/cli-args.h
-src/cli-debug-args.c
-src/cli-debug-args.h
src/crywrap/crywrap
src/gaa.skel
src/gnutls-cli
@@ -471,21 +465,9 @@ src/libcmd-psk.la
src/libcmd-serv.la
src/libcmd-srp.la
src/ocsptool
-src/ocsptool-args.c
-src/ocsptool-args.h
-src/ocsptool-gaa.c
-src/ocsptool-gaa.h
src/p11tool
-src/p11tool-args.c
-src/p11tool-args.h
-src/psk-args.c
-src/psk-args.h
src/psktool
-src/serv-args.c
-src/serv-args.h
src/srptool
-src/srptool-args.c
-src/srptool-args.h
stamp-h1
tags
tests/*/out
diff --git a/src/certtool-args.c b/src/certtool-args.c
new file mode 100644
index 0000000..c3e7b49
--- /dev/null
+++ b/src/certtool-args.c
@@ -0,0 +1,1782 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (certtool-args.c)
+ *
+ * It has been AutoGen-ed June 25, 2012 at 07:40:45 PM by AutoGen 5.16
+ * From the definitions certtool-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This source file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the certtool author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The certtool program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * certtool is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * certtool is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __doxygen__
+#define OPTION_CODE_COMPILE 1
+#include "certtool-args.h"
+#include <sys/types.h>
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern FILE * option_usage_fp;
+
+/* TRANSLATORS: choose the translation for option names wisely because you
+ cannot ever change your mind. */
+#define zCopyright (certtool_opt_strs+0)
+#define zLicenseDescrip (certtool_opt_strs+279)
+
+
+#ifndef NULL
+# define NULL 0
+#endif
+
+/*
+ * certtool option static const strings
+ */
+static char const certtool_opt_strs[4606] =
+/* 0 */ "certtool @address@hidden"
+ "Copyright (C) 2000-2012 Free Software Foundation, all rights
reserved.\n"
+ "This is free software. It is licensed for use, modification and\n"
+ "redistribution under the terms of the\n"
+ "GNU General Public License, version 3 or later\n"
+ " <http://gnu.org/licenses/gpl.html>\n\0"
+/* 279 */ "certtool is free software: you can redistribute it and/or modify
it under\n"
+ "the terms of the GNU General Public License as published by the
Free\n"
+ "Software Foundation, either version 3 of the License, or (at your
option)\n"
+ "any later version.\n\n"
+ "certtool is distributed in the hope that it will be useful, but
WITHOUT ANY\n"
+ "WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS\n"
+ "FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more\n"
+ "details.\n\n"
+ "You should have received a copy of the GNU General Public License
along\n"
+ "with this program. If not, see
<http://www.gnu.org/licenses/>.\n\0"
+/* 884 */ "Enable debugging.\0"
+/* 902 */ "DEBUG\0"
+/* 908 */ "debug\0"
+/* 914 */ "Input file\0"
+/* 925 */ "INFILE\0"
+/* 932 */ "infile\0"
+/* 939 */ "Output file\0"
+/* 951 */ "OUTFILE\0"
+/* 959 */ "outfile\0"
+/* 967 */ "Generate a self-signed certificate\0"
+/* 1002 */ "GENERATE_SELF_SIGNED\0"
+/* 1023 */ "generate-self-signed\0"
+/* 1044 */ "Generate a signed certificate\0"
+/* 1074 */ "GENERATE_CERTIFICATE\0"
+/* 1095 */ "generate-certificate\0"
+/* 1116 */ "Generates a proxy certificate\0"
+/* 1146 */ "GENERATE_PROXY\0"
+/* 1161 */ "generate-proxy\0"
+/* 1176 */ "Generate a CRL\0"
+/* 1191 */ "GENERATE_CRL\0"
+/* 1204 */ "generate-crl\0"
+/* 1217 */ "Update a signed certificate\0"
+/* 1245 */ "UPDATE_CERTIFICATE\0"
+/* 1264 */ "update-certificate\0"
+/* 1283 */ "Generate a private key\0"
+/* 1306 */ "GENERATE_PRIVKEY\0"
+/* 1323 */ "generate-privkey\0"
+/* 1340 */ "Generate a PKCS #10 certificate request\0"
+/* 1380 */ "GENERATE_REQUEST\0"
+/* 1397 */ "generate-request\0"
+/* 1414 */ "Verify a PEM encoded certificate chain.\0"
+/* 1454 */ "VERIFY_CHAIN\0"
+/* 1467 */ "verify-chain\0"
+/* 1480 */ "Verify a PEM encoded certificate chain using a trusted list.\0"
+/* 1541 */ "VERIFY\0"
+/* 1548 */ "verify\0"
+/* 1555 */ "Verify a CRL using a trusted list.\0"
+/* 1590 */ "VERIFY_CRL\0"
+/* 1601 */ "verify-crl\0"
+/* 1612 */ "Generate PKCS #3 encoded Diffie-Hellman parameters.\0"
+/* 1664 */ "GENERATE_DH_PARAMS\0"
+/* 1683 */ "generate-dh-params\0"
+/* 1702 */ "Get the included PKCS #3 encoded Diffie-Hellman parameters.\0"
+/* 1762 */ "GET_DH_PARAMS\0"
+/* 1776 */ "get-dh-params\0"
+/* 1790 */ "Print information PKCS #3 encoded Diffie-Hellman parameters\0"
+/* 1850 */ "DH_INFO\0"
+/* 1858 */ "dh-info\0"
+/* 1866 */ "Loads a private key file\0"
+/* 1891 */ "LOAD_PRIVKEY\0"
+/* 1904 */ "load-privkey\0"
+/* 1917 */ "Loads a public key file\0"
+/* 1941 */ "LOAD_PUBKEY\0"
+/* 1953 */ "load-pubkey\0"
+/* 1965 */ "Loads a certificate request file\0"
+/* 1998 */ "LOAD_REQUEST\0"
+/* 2011 */ "load-request\0"
+/* 2024 */ "Loads a certificate file\0"
+/* 2049 */ "LOAD_CERTIFICATE\0"
+/* 2066 */ "load-certificate\0"
+/* 2083 */ "Loads the certificate authority's private key file\0"
+/* 2134 */ "LOAD_CA_PRIVKEY\0"
+/* 2150 */ "load-ca-privkey\0"
+/* 2166 */ "Loads the certificate authority's certificate file\0"
+/* 2217 */ "LOAD_CA_CERTIFICATE\0"
+/* 2237 */ "load-ca-certificate\0"
+/* 2257 */ "Password to use\0"
+/* 2273 */ "PASSWORD\0"
+/* 2282 */ "password\0"
+/* 2291 */ "Print information on the given certificate\0"
+/* 2334 */ "CERTIFICATE_INFO\0"
+/* 2351 */ "certificate-info\0"
+/* 2368 */ "Print certificate's public key\0"
+/* 2399 */ "CERTIFICATE_PUBKEY\0"
+/* 2418 */ "certificate-pubkey\0"
+/* 2437 */ "Print information on the given OpenPGP certificate\0"
+/* 2488 */ "PGP_CERTIFICATE_INFO\0"
+/* 2509 */ "pgp-certificate-info\0"
+/* 2530 */ "Print information on the given OpenPGP keyring structure\0"
+/* 2587 */ "PGP_RING_INFO\0"
+/* 2601 */ "pgp-ring-info\0"
+/* 2615 */ "Print information on the given CRL structure\0"
+/* 2660 */ "CRL_INFO\0"
+/* 2669 */ "crl-info\0"
+/* 2678 */ "Print information on the given certificate request\0"
+/* 2729 */ "CRQ_INFO\0"
+/* 2738 */ "crq-info\0"
+/* 2747 */ "Do not use extensions in certificate requests\0"
+/* 2793 */ "NO_CRQ_EXTENSIONS\0"
+/* 2811 */ "no-crq-extensions\0"
+/* 2829 */ "Print information on a PKCS #12 structure\0"
+/* 2871 */ "P12_INFO\0"
+/* 2880 */ "p12-info\0"
+/* 2889 */ "Print information on a PKCS #7 structure\0"
+/* 2930 */ "P7_INFO\0"
+/* 2938 */ "p7-info\0"
+/* 2946 */ "Convert S/MIME to PKCS #7 structure\0"
+/* 2982 */ "SMIME_TO_P7\0"
+/* 2994 */ "smime-to-p7\0"
+/* 3006 */ "Print information on a private key\0"
+/* 3041 */ "KEY_INFO\0"
+/* 3050 */ "key-info\0"
+/* 3059 */ "Print information on an OpenPGP private key\0"
+/* 3103 */ "PGP_KEY_INFO\0"
+/* 3116 */ "pgp-key-info\0"
+/* 3129 */ "Print information on a public key\0"
+/* 3163 */ "PUBKEY_INFO\0"
+/* 3175 */ "pubkey-info\0"
+/* 3187 */ "Generate an X.509 version 1 certificate (with no extensions)\0"
+/* 3248 */ "V1\0"
+/* 3251 */ "v1\0"
+/* 3254 */ "Generate a PKCS #12 structure\0"
+/* 3284 */ "TO_P12\0"
+/* 3291 */ "to-p12\0"
+/* 3298 */ "Generate a PKCS #8 structure\0"
+/* 3327 */ "TO_P8\0"
+/* 3333 */ "to-p8\0"
+/* 3339 */ "Use PKCS #8 format for private keys\0"
+/* 3375 */ "PKCS8\0"
+/* 3381 */ "pkcs8\0"
+/* 3387 */ "Generate RSA key\0"
+/* 3404 */ "RSA\0"
+/* 3408 */ "rsa\0"
+/* 3412 */ "Generate DSA key\0"
+/* 3429 */ "DSA\0"
+/* 3433 */ "dsa\0"
+/* 3437 */ "Generate ECC (ECDSA) key\0"
+/* 3462 */ "ECC\0"
+/* 3466 */ "ecc\0"
+/* 3470 */ "Hash algorithm to use for signing.\0"
+/* 3505 */ "HASH\0"
+/* 3510 */ "hash\0"
+/* 3515 */ "Use DER format for input certificates and private keys.\0"
+/* 3571 */ "INDER\0"
+/* 3577 */ "no-inder\0"
+/* 3586 */ "no\0"
+/* 3589 */ "This is an alias for 'inder'\0"
+/* 3618 */ "inraw\0"
+/* 3624 */ "Use DER format for output certificates and private keys\0"
+/* 3680 */ "OUTDER\0"
+/* 3687 */ "no-outder\0"
+/* 3697 */ "This is an alias for 'outder'\0"
+/* 3727 */ "outraw\0"
+/* 3734 */ "Specify the number of bits for key generate\0"
+/* 3778 */ "BITS\0"
+/* 3783 */ "bits\0"
+/* 3788 */ "Specify the security level [low, legacy, normal, high, ultra].\0"
+/* 3851 */ "SEC_PARAM\0"
+/* 3861 */ "sec-param\0"
+/* 3871 */ "No effect\0"
+/* 3881 */ "DISABLE_QUICK_RANDOM\0"
+/* 3902 */ "disable-quick-random\0"
+/* 3923 */ "Template file to use for non-interactive operation\0"
+/* 3974 */ "TEMPLATE\0"
+/* 3983 */ "template\0"
+/* 3992 */ "Cipher to use for PKCS #8 and #12 operations\0"
+/* 4037 */ "PKCS_CIPHER\0"
+/* 4049 */ "pkcs-cipher\0"
+/* 4061 */ "Display extended usage information and exit\0"
+/* 4105 */ "help\0"
+/* 4110 */ "Extended usage information passed thru pager\0"
+/* 4155 */ "more-help\0"
+/* 4165 */ "Output version information and exit\0"
+/* 4201 */ "version\0"
+/* 4209 */ "CERTTOOL\0"
+/* 4218 */ "certtool - GnuTLS PKCS #11 tool - Ver. @address@hidden"
+ "USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
+/* 4325 */ "address@hidden"
+/* 4344 */ "\n\n\0"
+/* 4347 */ "\n"
+ "Tool to parse and generate X.509 certificates, requests and
private keys.\n"
+ "It can be used interactively or non interactively by specifying
the\n"
+ "template command line option.\n\0"
+/* 4521 */ "certtool @address@hidden"
+/* 4540 */ "certtool [options] [url]\n"
+ "certtool --help for usage instructions.\n";
+
+/*
+ * debug option description:
+ */
+#define DEBUG_DESC (certtool_opt_strs+884)
+#define DEBUG_NAME (certtool_opt_strs+902)
+#define DEBUG_name (certtool_opt_strs+908)
+#define DEBUG_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * infile option description:
+ */
+#define INFILE_DESC (certtool_opt_strs+914)
+#define INFILE_NAME (certtool_opt_strs+925)
+#define INFILE_name (certtool_opt_strs+932)
+#define INFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * outfile option description:
+ */
+#define OUTFILE_DESC (certtool_opt_strs+939)
+#define OUTFILE_NAME (certtool_opt_strs+951)
+#define OUTFILE_name (certtool_opt_strs+959)
+#define OUTFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * generate-self-signed option description:
+ */
+#define GENERATE_SELF_SIGNED_DESC (certtool_opt_strs+967)
+#define GENERATE_SELF_SIGNED_NAME (certtool_opt_strs+1002)
+#define GENERATE_SELF_SIGNED_name (certtool_opt_strs+1023)
+#define GENERATE_SELF_SIGNED_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate-certificate option description:
+ */
+#define GENERATE_CERTIFICATE_DESC (certtool_opt_strs+1044)
+#define GENERATE_CERTIFICATE_NAME (certtool_opt_strs+1074)
+#define GENERATE_CERTIFICATE_name (certtool_opt_strs+1095)
+#define GENERATE_CERTIFICATE_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate-proxy option description:
+ */
+#define GENERATE_PROXY_DESC (certtool_opt_strs+1116)
+#define GENERATE_PROXY_NAME (certtool_opt_strs+1146)
+#define GENERATE_PROXY_name (certtool_opt_strs+1161)
+#define GENERATE_PROXY_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate-crl option description:
+ */
+#define GENERATE_CRL_DESC (certtool_opt_strs+1176)
+#define GENERATE_CRL_NAME (certtool_opt_strs+1191)
+#define GENERATE_CRL_name (certtool_opt_strs+1204)
+#define GENERATE_CRL_FLAGS (OPTST_DISABLED)
+
+/*
+ * update-certificate option description:
+ */
+#define UPDATE_CERTIFICATE_DESC (certtool_opt_strs+1217)
+#define UPDATE_CERTIFICATE_NAME (certtool_opt_strs+1245)
+#define UPDATE_CERTIFICATE_name (certtool_opt_strs+1264)
+#define UPDATE_CERTIFICATE_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate-privkey option description:
+ */
+#define GENERATE_PRIVKEY_DESC (certtool_opt_strs+1283)
+#define GENERATE_PRIVKEY_NAME (certtool_opt_strs+1306)
+#define GENERATE_PRIVKEY_name (certtool_opt_strs+1323)
+#define GENERATE_PRIVKEY_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate-request option description:
+ */
+#define GENERATE_REQUEST_DESC (certtool_opt_strs+1340)
+#define GENERATE_REQUEST_NAME (certtool_opt_strs+1380)
+#define GENERATE_REQUEST_name (certtool_opt_strs+1397)
+#define GENERATE_REQUEST_FLAGS (OPTST_DISABLED)
+
+/*
+ * verify-chain option description:
+ */
+#define VERIFY_CHAIN_DESC (certtool_opt_strs+1414)
+#define VERIFY_CHAIN_NAME (certtool_opt_strs+1454)
+#define VERIFY_CHAIN_name (certtool_opt_strs+1467)
+#define VERIFY_CHAIN_FLAGS (OPTST_DISABLED)
+
+/*
+ * verify option description with
+ * "Must also have options" and "Incompatible options":
+ */
+#define VERIFY_DESC (certtool_opt_strs+1480)
+#define VERIFY_NAME (certtool_opt_strs+1541)
+#define VERIFY_name (certtool_opt_strs+1548)
+static int const aVerifyMustList[] = {
+ INDEX_OPT_LOAD_CA_CERTIFICATE, NO_EQUIVALENT };
+#define VERIFY_FLAGS (OPTST_DISABLED)
+
+/*
+ * verify-crl option description with
+ * "Must also have options" and "Incompatible options":
+ */
+#define VERIFY_CRL_DESC (certtool_opt_strs+1555)
+#define VERIFY_CRL_NAME (certtool_opt_strs+1590)
+#define VERIFY_CRL_name (certtool_opt_strs+1601)
+static int const aVerify_CrlMustList[] = {
+ INDEX_OPT_LOAD_CA_CERTIFICATE, NO_EQUIVALENT };
+#define VERIFY_CRL_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate-dh-params option description:
+ */
+#define GENERATE_DH_PARAMS_DESC (certtool_opt_strs+1612)
+#define GENERATE_DH_PARAMS_NAME (certtool_opt_strs+1664)
+#define GENERATE_DH_PARAMS_name (certtool_opt_strs+1683)
+#define GENERATE_DH_PARAMS_FLAGS (OPTST_DISABLED)
+
+/*
+ * get-dh-params option description:
+ */
+#define GET_DH_PARAMS_DESC (certtool_opt_strs+1702)
+#define GET_DH_PARAMS_NAME (certtool_opt_strs+1762)
+#define GET_DH_PARAMS_name (certtool_opt_strs+1776)
+#define GET_DH_PARAMS_FLAGS (OPTST_DISABLED)
+
+/*
+ * dh-info option description:
+ */
+#define DH_INFO_DESC (certtool_opt_strs+1790)
+#define DH_INFO_NAME (certtool_opt_strs+1850)
+#define DH_INFO_name (certtool_opt_strs+1858)
+#define DH_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * load-privkey option description:
+ */
+#define LOAD_PRIVKEY_DESC (certtool_opt_strs+1866)
+#define LOAD_PRIVKEY_NAME (certtool_opt_strs+1891)
+#define LOAD_PRIVKEY_name (certtool_opt_strs+1904)
+#define LOAD_PRIVKEY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * load-pubkey option description:
+ */
+#define LOAD_PUBKEY_DESC (certtool_opt_strs+1917)
+#define LOAD_PUBKEY_NAME (certtool_opt_strs+1941)
+#define LOAD_PUBKEY_name (certtool_opt_strs+1953)
+#define LOAD_PUBKEY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * load-request option description:
+ */
+#define LOAD_REQUEST_DESC (certtool_opt_strs+1965)
+#define LOAD_REQUEST_NAME (certtool_opt_strs+1998)
+#define LOAD_REQUEST_name (certtool_opt_strs+2011)
+#define LOAD_REQUEST_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * load-certificate option description:
+ */
+#define LOAD_CERTIFICATE_DESC (certtool_opt_strs+2024)
+#define LOAD_CERTIFICATE_NAME (certtool_opt_strs+2049)
+#define LOAD_CERTIFICATE_name (certtool_opt_strs+2066)
+#define LOAD_CERTIFICATE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * load-ca-privkey option description:
+ */
+#define LOAD_CA_PRIVKEY_DESC (certtool_opt_strs+2083)
+#define LOAD_CA_PRIVKEY_NAME (certtool_opt_strs+2134)
+#define LOAD_CA_PRIVKEY_name (certtool_opt_strs+2150)
+#define LOAD_CA_PRIVKEY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * load-ca-certificate option description:
+ */
+#define LOAD_CA_CERTIFICATE_DESC (certtool_opt_strs+2166)
+#define LOAD_CA_CERTIFICATE_NAME (certtool_opt_strs+2217)
+#define LOAD_CA_CERTIFICATE_name (certtool_opt_strs+2237)
+#define LOAD_CA_CERTIFICATE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * password option description:
+ */
+#define PASSWORD_DESC (certtool_opt_strs+2257)
+#define PASSWORD_NAME (certtool_opt_strs+2273)
+#define PASSWORD_name (certtool_opt_strs+2282)
+#define PASSWORD_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * certificate-info option description:
+ */
+#define CERTIFICATE_INFO_DESC (certtool_opt_strs+2291)
+#define CERTIFICATE_INFO_NAME (certtool_opt_strs+2334)
+#define CERTIFICATE_INFO_name (certtool_opt_strs+2351)
+#define CERTIFICATE_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * certificate-pubkey option description:
+ */
+#define CERTIFICATE_PUBKEY_DESC (certtool_opt_strs+2368)
+#define CERTIFICATE_PUBKEY_NAME (certtool_opt_strs+2399)
+#define CERTIFICATE_PUBKEY_name (certtool_opt_strs+2418)
+#define CERTIFICATE_PUBKEY_FLAGS (OPTST_DISABLED)
+
+/*
+ * pgp-certificate-info option description:
+ */
+#define PGP_CERTIFICATE_INFO_DESC (certtool_opt_strs+2437)
+#define PGP_CERTIFICATE_INFO_NAME (certtool_opt_strs+2488)
+#define PGP_CERTIFICATE_INFO_name (certtool_opt_strs+2509)
+#define PGP_CERTIFICATE_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * pgp-ring-info option description:
+ */
+#define PGP_RING_INFO_DESC (certtool_opt_strs+2530)
+#define PGP_RING_INFO_NAME (certtool_opt_strs+2587)
+#define PGP_RING_INFO_name (certtool_opt_strs+2601)
+#define PGP_RING_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * crl-info option description:
+ */
+#define CRL_INFO_DESC (certtool_opt_strs+2615)
+#define CRL_INFO_NAME (certtool_opt_strs+2660)
+#define CRL_INFO_name (certtool_opt_strs+2669)
+#define CRL_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * crq-info option description:
+ */
+#define CRQ_INFO_DESC (certtool_opt_strs+2678)
+#define CRQ_INFO_NAME (certtool_opt_strs+2729)
+#define CRQ_INFO_name (certtool_opt_strs+2738)
+#define CRQ_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * no-crq-extensions option description:
+ */
+#define NO_CRQ_EXTENSIONS_DESC (certtool_opt_strs+2747)
+#define NO_CRQ_EXTENSIONS_NAME (certtool_opt_strs+2793)
+#define NO_CRQ_EXTENSIONS_name (certtool_opt_strs+2811)
+#define NO_CRQ_EXTENSIONS_FLAGS (OPTST_DISABLED)
+
+/*
+ * p12-info option description:
+ */
+#define P12_INFO_DESC (certtool_opt_strs+2829)
+#define P12_INFO_NAME (certtool_opt_strs+2871)
+#define P12_INFO_name (certtool_opt_strs+2880)
+#define P12_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * p7-info option description:
+ */
+#define P7_INFO_DESC (certtool_opt_strs+2889)
+#define P7_INFO_NAME (certtool_opt_strs+2930)
+#define P7_INFO_name (certtool_opt_strs+2938)
+#define P7_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * smime-to-p7 option description:
+ */
+#define SMIME_TO_P7_DESC (certtool_opt_strs+2946)
+#define SMIME_TO_P7_NAME (certtool_opt_strs+2982)
+#define SMIME_TO_P7_name (certtool_opt_strs+2994)
+#define SMIME_TO_P7_FLAGS (OPTST_DISABLED)
+
+/*
+ * key-info option description:
+ */
+#define KEY_INFO_DESC (certtool_opt_strs+3006)
+#define KEY_INFO_NAME (certtool_opt_strs+3041)
+#define KEY_INFO_name (certtool_opt_strs+3050)
+#define KEY_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * pgp-key-info option description:
+ */
+#define PGP_KEY_INFO_DESC (certtool_opt_strs+3059)
+#define PGP_KEY_INFO_NAME (certtool_opt_strs+3103)
+#define PGP_KEY_INFO_name (certtool_opt_strs+3116)
+#define PGP_KEY_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * pubkey-info option description:
+ */
+#define PUBKEY_INFO_DESC (certtool_opt_strs+3129)
+#define PUBKEY_INFO_NAME (certtool_opt_strs+3163)
+#define PUBKEY_INFO_name (certtool_opt_strs+3175)
+#define PUBKEY_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * v1 option description:
+ */
+#define V1_DESC (certtool_opt_strs+3187)
+#define V1_NAME (certtool_opt_strs+3248)
+#define V1_name (certtool_opt_strs+3251)
+#define V1_FLAGS (OPTST_DISABLED)
+
+/*
+ * to-p12 option description with
+ * "Must also have options" and "Incompatible options":
+ */
+#define TO_P12_DESC (certtool_opt_strs+3254)
+#define TO_P12_NAME (certtool_opt_strs+3284)
+#define TO_P12_name (certtool_opt_strs+3291)
+static int const aTo_P12MustList[] = {
+ INDEX_OPT_LOAD_CERTIFICATE, NO_EQUIVALENT };
+#define TO_P12_FLAGS (OPTST_DISABLED)
+
+/*
+ * to-p8 option description:
+ */
+#define TO_P8_DESC (certtool_opt_strs+3298)
+#define TO_P8_NAME (certtool_opt_strs+3327)
+#define TO_P8_name (certtool_opt_strs+3333)
+#define TO_P8_FLAGS (OPTST_DISABLED)
+
+/*
+ * pkcs8 option description:
+ */
+#define PKCS8_DESC (certtool_opt_strs+3339)
+#define PKCS8_NAME (certtool_opt_strs+3375)
+#define PKCS8_name (certtool_opt_strs+3381)
+#define PKCS8_FLAGS (OPTST_DISABLED)
+
+/*
+ * rsa option description:
+ */
+#define RSA_DESC (certtool_opt_strs+3387)
+#define RSA_NAME (certtool_opt_strs+3404)
+#define RSA_name (certtool_opt_strs+3408)
+#define RSA_FLAGS (OPTST_DISABLED)
+
+/*
+ * dsa option description:
+ */
+#define DSA_DESC (certtool_opt_strs+3412)
+#define DSA_NAME (certtool_opt_strs+3429)
+#define DSA_name (certtool_opt_strs+3433)
+#define DSA_FLAGS (OPTST_DISABLED)
+
+/*
+ * ecc option description:
+ */
+#define ECC_DESC (certtool_opt_strs+3437)
+#define ECC_NAME (certtool_opt_strs+3462)
+#define ECC_name (certtool_opt_strs+3466)
+#define ECC_FLAGS (OPTST_DISABLED)
+
+/*
+ * hash option description:
+ */
+#define HASH_DESC (certtool_opt_strs+3470)
+#define HASH_NAME (certtool_opt_strs+3505)
+#define HASH_name (certtool_opt_strs+3510)
+#define HASH_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * inder option description:
+ */
+#define INDER_DESC (certtool_opt_strs+3515)
+#define INDER_NAME (certtool_opt_strs+3571)
+#define NOT_INDER_name (certtool_opt_strs+3577)
+#define NOT_INDER_PFX (certtool_opt_strs+3586)
+#define INDER_name (NOT_INDER_name + 3)
+#define INDER_FLAGS (OPTST_DISABLED)
+
+/*
+ * inraw option description:
+ */
+#define INRAW_DESC (certtool_opt_strs+3589)
+#define INRAW_NAME NULL
+#define INRAW_name (certtool_opt_strs+3618)
+#define INRAW_FLAGS (INDER_FLAGS | OPTST_ALIAS)
+
+/*
+ * outder option description:
+ */
+#define OUTDER_DESC (certtool_opt_strs+3624)
+#define OUTDER_NAME (certtool_opt_strs+3680)
+#define NOT_OUTDER_name (certtool_opt_strs+3687)
+#define NOT_OUTDER_PFX (certtool_opt_strs+3586)
+#define OUTDER_name (NOT_OUTDER_name + 3)
+#define OUTDER_FLAGS (OPTST_DISABLED)
+
+/*
+ * outraw option description:
+ */
+#define OUTRAW_DESC (certtool_opt_strs+3697)
+#define OUTRAW_NAME NULL
+#define OUTRAW_name (certtool_opt_strs+3727)
+#define OUTRAW_FLAGS (OUTDER_FLAGS | OPTST_ALIAS)
+
+/*
+ * bits option description:
+ */
+#define BITS_DESC (certtool_opt_strs+3734)
+#define BITS_NAME (certtool_opt_strs+3778)
+#define BITS_name (certtool_opt_strs+3783)
+#define BITS_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * sec-param option description:
+ */
+#define SEC_PARAM_DESC (certtool_opt_strs+3788)
+#define SEC_PARAM_NAME (certtool_opt_strs+3851)
+#define SEC_PARAM_name (certtool_opt_strs+3861)
+#define SEC_PARAM_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * disable-quick-random option description:
+ */
+#define DISABLE_QUICK_RANDOM_DESC (certtool_opt_strs+3871)
+#define DISABLE_QUICK_RANDOM_NAME (certtool_opt_strs+3881)
+#define DISABLE_QUICK_RANDOM_name (certtool_opt_strs+3902)
+#define DISABLE_QUICK_RANDOM_FLAGS (OPTST_DISABLED)
+
+/*
+ * template option description:
+ */
+#define TEMPLATE_DESC (certtool_opt_strs+3923)
+#define TEMPLATE_NAME (certtool_opt_strs+3974)
+#define TEMPLATE_name (certtool_opt_strs+3983)
+#define TEMPLATE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * pkcs-cipher option description:
+ */
+#define PKCS_CIPHER_DESC (certtool_opt_strs+3992)
+#define PKCS_CIPHER_NAME (certtool_opt_strs+4037)
+#define PKCS_CIPHER_name (certtool_opt_strs+4049)
+#define PKCS_CIPHER_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * Help/More_Help/Version option descriptions:
+ */
+#define HELP_DESC (certtool_opt_strs+4061)
+#define HELP_name (certtool_opt_strs+4105)
+#ifdef HAVE_WORKING_FORK
+#define MORE_HELP_DESC (certtool_opt_strs+4110)
+#define MORE_HELP_name (certtool_opt_strs+4155)
+#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+#define MORE_HELP_DESC NULL
+#define MORE_HELP_name NULL
+#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
+#endif
+#ifdef NO_OPTIONAL_OPT_ARGS
+# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
+ OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
+#endif
+#define VER_DESC (certtool_opt_strs+4165)
+#define VER_name (certtool_opt_strs+4201)
+/*
+ * Declare option callback procedures
+ */
+extern tOptProc
+ optionBooleanVal, optionNestedVal, optionNumericVal,
+ optionPagedUsage, optionPrintVersion, optionResetOpt,
+ optionStackArg, optionTimeDate, optionTimeVal,
+ optionUnstackArg, optionVendorOption;
+static tOptProc
+ doOptDebug, doOptInfile, doOptInraw,
+ doOptLoad_Request, doOptOutraw, doOptTemplate,
+ doUsageOpt;
+#define VER_PROC optionPrintVersion
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Define the certtool Option Descriptions.
+ * This is an array of OPTION_CT entries, one for each
+ * option that the certtool program responds to.
+ */
+static tOptDesc optDesc[OPTION_CT] = {
+ { /* entry idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equiv idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DEBUG_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --debug */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptDebug,
+ /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 1, VALUE_OPT_INFILE,
+ /* equiv idx, value */ 1, VALUE_OPT_INFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ INFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --infile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptInfile,
+ /* desc, NAME, name */ INFILE_DESC, INFILE_NAME, INFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 2, VALUE_OPT_OUTFILE,
+ /* equiv idx, value */ 2, VALUE_OPT_OUTFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OUTFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --outfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ OUTFILE_DESC, OUTFILE_NAME, OUTFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 3, VALUE_OPT_GENERATE_SELF_SIGNED,
+ /* equiv idx, value */ 3, VALUE_OPT_GENERATE_SELF_SIGNED,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_SELF_SIGNED_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-self-signed */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_SELF_SIGNED_DESC,
GENERATE_SELF_SIGNED_NAME, GENERATE_SELF_SIGNED_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 4, VALUE_OPT_GENERATE_CERTIFICATE,
+ /* equiv idx, value */ 4, VALUE_OPT_GENERATE_CERTIFICATE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_CERTIFICATE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-certificate */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_CERTIFICATE_DESC,
GENERATE_CERTIFICATE_NAME, GENERATE_CERTIFICATE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 5, VALUE_OPT_GENERATE_PROXY,
+ /* equiv idx, value */ 5, VALUE_OPT_GENERATE_PROXY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_PROXY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-proxy */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_PROXY_DESC, GENERATE_PROXY_NAME,
GENERATE_PROXY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 6, VALUE_OPT_GENERATE_CRL,
+ /* equiv idx, value */ 6, VALUE_OPT_GENERATE_CRL,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_CRL_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-crl */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_CRL_DESC, GENERATE_CRL_NAME,
GENERATE_CRL_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 7, VALUE_OPT_UPDATE_CERTIFICATE,
+ /* equiv idx, value */ 7, VALUE_OPT_UPDATE_CERTIFICATE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ UPDATE_CERTIFICATE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --update-certificate */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ UPDATE_CERTIFICATE_DESC, UPDATE_CERTIFICATE_NAME,
UPDATE_CERTIFICATE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 8, VALUE_OPT_GENERATE_PRIVKEY,
+ /* equiv idx, value */ 8, VALUE_OPT_GENERATE_PRIVKEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_PRIVKEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-privkey */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_PRIVKEY_DESC, GENERATE_PRIVKEY_NAME,
GENERATE_PRIVKEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 9, VALUE_OPT_GENERATE_REQUEST,
+ /* equiv idx, value */ 9, VALUE_OPT_GENERATE_REQUEST,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_REQUEST_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-request */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_REQUEST_DESC, GENERATE_REQUEST_NAME,
GENERATE_REQUEST_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 10, VALUE_OPT_VERIFY_CHAIN,
+ /* equiv idx, value */ 10, VALUE_OPT_VERIFY_CHAIN,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VERIFY_CHAIN_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --verify-chain */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ VERIFY_CHAIN_DESC, VERIFY_CHAIN_NAME,
VERIFY_CHAIN_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 11, VALUE_OPT_VERIFY,
+ /* equiv idx, value */ 11, VALUE_OPT_VERIFY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VERIFY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --verify */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ aVerifyMustList, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ VERIFY_DESC, VERIFY_NAME, VERIFY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 12, VALUE_OPT_VERIFY_CRL,
+ /* equiv idx, value */ 12, VALUE_OPT_VERIFY_CRL,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VERIFY_CRL_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --verify-crl */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ aVerify_CrlMustList, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ VERIFY_CRL_DESC, VERIFY_CRL_NAME, VERIFY_CRL_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 13, VALUE_OPT_GENERATE_DH_PARAMS,
+ /* equiv idx, value */ 13, VALUE_OPT_GENERATE_DH_PARAMS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_DH_PARAMS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-dh-params */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_DH_PARAMS_DESC, GENERATE_DH_PARAMS_NAME,
GENERATE_DH_PARAMS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 14, VALUE_OPT_GET_DH_PARAMS,
+ /* equiv idx, value */ 14, VALUE_OPT_GET_DH_PARAMS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GET_DH_PARAMS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --get-dh-params */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GET_DH_PARAMS_DESC, GET_DH_PARAMS_NAME,
GET_DH_PARAMS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 15, VALUE_OPT_DH_INFO,
+ /* equiv idx, value */ 15, VALUE_OPT_DH_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DH_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --dh-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ DH_INFO_DESC, DH_INFO_NAME, DH_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 16, VALUE_OPT_LOAD_PRIVKEY,
+ /* equiv idx, value */ 16, VALUE_OPT_LOAD_PRIVKEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_PRIVKEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-privkey */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LOAD_PRIVKEY_DESC, LOAD_PRIVKEY_NAME,
LOAD_PRIVKEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 17, VALUE_OPT_LOAD_PUBKEY,
+ /* equiv idx, value */ 17, VALUE_OPT_LOAD_PUBKEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_PUBKEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-pubkey */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LOAD_PUBKEY_DESC, LOAD_PUBKEY_NAME,
LOAD_PUBKEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 18, VALUE_OPT_LOAD_REQUEST,
+ /* equiv idx, value */ 18, VALUE_OPT_LOAD_REQUEST,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_REQUEST_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-request */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptLoad_Request,
+ /* desc, NAME, name */ LOAD_REQUEST_DESC, LOAD_REQUEST_NAME,
LOAD_REQUEST_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 19, VALUE_OPT_LOAD_CERTIFICATE,
+ /* equiv idx, value */ 19, VALUE_OPT_LOAD_CERTIFICATE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_CERTIFICATE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-certificate */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LOAD_CERTIFICATE_DESC, LOAD_CERTIFICATE_NAME,
LOAD_CERTIFICATE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 20, VALUE_OPT_LOAD_CA_PRIVKEY,
+ /* equiv idx, value */ 20, VALUE_OPT_LOAD_CA_PRIVKEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_CA_PRIVKEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-ca-privkey */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LOAD_CA_PRIVKEY_DESC, LOAD_CA_PRIVKEY_NAME,
LOAD_CA_PRIVKEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 21, VALUE_OPT_LOAD_CA_CERTIFICATE,
+ /* equiv idx, value */ 21, VALUE_OPT_LOAD_CA_CERTIFICATE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_CA_CERTIFICATE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-ca-certificate */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LOAD_CA_CERTIFICATE_DESC,
LOAD_CA_CERTIFICATE_NAME, LOAD_CA_CERTIFICATE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 22, VALUE_OPT_PASSWORD,
+ /* equiv idx, value */ 22, VALUE_OPT_PASSWORD,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PASSWORD_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --password */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PASSWORD_DESC, PASSWORD_NAME, PASSWORD_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 23, VALUE_OPT_CERTIFICATE_INFO,
+ /* equiv idx, value */ 23, VALUE_OPT_CERTIFICATE_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ CERTIFICATE_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --certificate-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ CERTIFICATE_INFO_DESC, CERTIFICATE_INFO_NAME,
CERTIFICATE_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 24, VALUE_OPT_CERTIFICATE_PUBKEY,
+ /* equiv idx, value */ 24, VALUE_OPT_CERTIFICATE_PUBKEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ CERTIFICATE_PUBKEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --certificate-pubkey */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ CERTIFICATE_PUBKEY_DESC, CERTIFICATE_PUBKEY_NAME,
CERTIFICATE_PUBKEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 25, VALUE_OPT_PGP_CERTIFICATE_INFO,
+ /* equiv idx, value */ 25, VALUE_OPT_PGP_CERTIFICATE_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGP_CERTIFICATE_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgp-certificate-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PGP_CERTIFICATE_INFO_DESC,
PGP_CERTIFICATE_INFO_NAME, PGP_CERTIFICATE_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 26, VALUE_OPT_PGP_RING_INFO,
+ /* equiv idx, value */ 26, VALUE_OPT_PGP_RING_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGP_RING_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgp-ring-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PGP_RING_INFO_DESC, PGP_RING_INFO_NAME,
PGP_RING_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 27, VALUE_OPT_CRL_INFO,
+ /* equiv idx, value */ 27, VALUE_OPT_CRL_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ CRL_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --crl-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ CRL_INFO_DESC, CRL_INFO_NAME, CRL_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 28, VALUE_OPT_CRQ_INFO,
+ /* equiv idx, value */ 28, VALUE_OPT_CRQ_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ CRQ_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --crq-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ CRQ_INFO_DESC, CRQ_INFO_NAME, CRQ_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 29, VALUE_OPT_NO_CRQ_EXTENSIONS,
+ /* equiv idx, value */ 29, VALUE_OPT_NO_CRQ_EXTENSIONS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ NO_CRQ_EXTENSIONS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --no-crq-extensions */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ NO_CRQ_EXTENSIONS_DESC, NO_CRQ_EXTENSIONS_NAME,
NO_CRQ_EXTENSIONS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 30, VALUE_OPT_P12_INFO,
+ /* equiv idx, value */ 30, VALUE_OPT_P12_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ P12_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --p12-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ P12_INFO_DESC, P12_INFO_NAME, P12_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 31, VALUE_OPT_P7_INFO,
+ /* equiv idx, value */ 31, VALUE_OPT_P7_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ P7_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --p7-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ P7_INFO_DESC, P7_INFO_NAME, P7_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 32, VALUE_OPT_SMIME_TO_P7,
+ /* equiv idx, value */ 32, VALUE_OPT_SMIME_TO_P7,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ SMIME_TO_P7_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --smime-to-p7 */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ SMIME_TO_P7_DESC, SMIME_TO_P7_NAME,
SMIME_TO_P7_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 33, VALUE_OPT_KEY_INFO,
+ /* equiv idx, value */ 33, VALUE_OPT_KEY_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ KEY_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --key-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ KEY_INFO_DESC, KEY_INFO_NAME, KEY_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 34, VALUE_OPT_PGP_KEY_INFO,
+ /* equiv idx, value */ 34, VALUE_OPT_PGP_KEY_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGP_KEY_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgp-key-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PGP_KEY_INFO_DESC, PGP_KEY_INFO_NAME,
PGP_KEY_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 35, VALUE_OPT_PUBKEY_INFO,
+ /* equiv idx, value */ 35, VALUE_OPT_PUBKEY_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PUBKEY_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pubkey-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PUBKEY_INFO_DESC, PUBKEY_INFO_NAME,
PUBKEY_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 36, VALUE_OPT_V1,
+ /* equiv idx, value */ 36, VALUE_OPT_V1,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ V1_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --v1 */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ V1_DESC, V1_NAME, V1_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 37, VALUE_OPT_TO_P12,
+ /* equiv idx, value */ 37, VALUE_OPT_TO_P12,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ TO_P12_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --to-p12 */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ aTo_P12MustList, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ TO_P12_DESC, TO_P12_NAME, TO_P12_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 38, VALUE_OPT_TO_P8,
+ /* equiv idx, value */ 38, VALUE_OPT_TO_P8,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ TO_P8_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --to-p8 */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ TO_P8_DESC, TO_P8_NAME, TO_P8_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 39, VALUE_OPT_PKCS8,
+ /* equiv idx, value */ 39, VALUE_OPT_PKCS8,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PKCS8_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pkcs8 */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PKCS8_DESC, PKCS8_NAME, PKCS8_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 40, VALUE_OPT_RSA,
+ /* equiv idx, value */ 40, VALUE_OPT_RSA,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ RSA_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --rsa */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ RSA_DESC, RSA_NAME, RSA_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 41, VALUE_OPT_DSA,
+ /* equiv idx, value */ 41, VALUE_OPT_DSA,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DSA_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --dsa */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ DSA_DESC, DSA_NAME, DSA_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 42, VALUE_OPT_ECC,
+ /* equiv idx, value */ 42, VALUE_OPT_ECC,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ ECC_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --ecc */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ ECC_DESC, ECC_NAME, ECC_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 43, VALUE_OPT_HASH,
+ /* equiv idx, value */ 43, VALUE_OPT_HASH,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ HASH_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --hash */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ HASH_DESC, HASH_NAME, HASH_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 44, VALUE_OPT_INDER,
+ /* equiv idx, value */ 44, VALUE_OPT_INDER,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ INDER_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --inder */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ INDER_DESC, INDER_NAME, INDER_name,
+ /* disablement strs */ NOT_INDER_name, NOT_INDER_PFX },
+
+ { /* entry idx, value */ 45, VALUE_OPT_INRAW,
+ /* equiv idx, value */ 45, VALUE_OPT_INRAW,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ INRAW_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --inraw */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptInraw,
+ /* desc, NAME, name */ INRAW_DESC, INRAW_NAME, INRAW_name,
+ /* disablement strs */ 0, 0 },
+
+ { /* entry idx, value */ 46, VALUE_OPT_OUTDER,
+ /* equiv idx, value */ 46, VALUE_OPT_OUTDER,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OUTDER_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --outder */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ OUTDER_DESC, OUTDER_NAME, OUTDER_name,
+ /* disablement strs */ NOT_OUTDER_name, NOT_OUTDER_PFX },
+
+ { /* entry idx, value */ 47, VALUE_OPT_OUTRAW,
+ /* equiv idx, value */ 47, VALUE_OPT_OUTRAW,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OUTRAW_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --outraw */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptOutraw,
+ /* desc, NAME, name */ OUTRAW_DESC, OUTRAW_NAME, OUTRAW_name,
+ /* disablement strs */ 0, 0 },
+
+ { /* entry idx, value */ 48, VALUE_OPT_BITS,
+ /* equiv idx, value */ 48, VALUE_OPT_BITS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ BITS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --bits */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionNumericVal,
+ /* desc, NAME, name */ BITS_DESC, BITS_NAME, BITS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 49, VALUE_OPT_SEC_PARAM,
+ /* equiv idx, value */ 49, VALUE_OPT_SEC_PARAM,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ SEC_PARAM_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --sec-param */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ SEC_PARAM_DESC, SEC_PARAM_NAME, SEC_PARAM_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 50, VALUE_OPT_DISABLE_QUICK_RANDOM,
+ /* equiv idx, value */ 50, VALUE_OPT_DISABLE_QUICK_RANDOM,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DISABLE_QUICK_RANDOM_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --disable-quick-random */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ DISABLE_QUICK_RANDOM_DESC,
DISABLE_QUICK_RANDOM_NAME, DISABLE_QUICK_RANDOM_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 51, VALUE_OPT_TEMPLATE,
+ /* equiv idx, value */ 51, VALUE_OPT_TEMPLATE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ TEMPLATE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --template */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptTemplate,
+ /* desc, NAME, name */ TEMPLATE_DESC, TEMPLATE_NAME, TEMPLATE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 52, VALUE_OPT_PKCS_CIPHER,
+ /* equiv idx, value */ 52, VALUE_OPT_PKCS_CIPHER,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PKCS_CIPHER_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pkcs-cipher */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PKCS_CIPHER_DESC, PKCS_CIPHER_NAME,
PKCS_CIPHER_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VER_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ VER_PROC,
+ /* desc, NAME, name */ VER_DESC, NULL, VER_name,
+ /* disablement strs */ NULL, NULL },
+
+
+
+ { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doUsageOpt,
+ /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ MORE_HELP_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionPagedUsage,
+ /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
+ /* disablement strs */ NULL, NULL }
+};
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Define the certtool Option Environment
+ */
+#define zPROGNAME (certtool_opt_strs+4209)
+#define zUsageTitle (certtool_opt_strs+4218)
+#define zRcName NULL
+#define apzHomeList NULL
+#define zBugsAddr (certtool_opt_strs+4325)
+#define zExplain (certtool_opt_strs+4344)
+#define zDetail (certtool_opt_strs+4347)
+#define zFullVersion (certtool_opt_strs+4521)
+/* extracted from optcode.tlib near line 350 */
+
+#if defined(ENABLE_NLS)
+# define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
+ static tOptionXlateProc translate_option_strings;
+#else
+# define OPTPROC_BASE OPTPROC_NONE
+# define translate_option_strings NULL
+#endif /* ENABLE_NLS */
+
+
+#define certtool_full_usage (NULL)
+
+#define certtool_short_usage (certtool_opt_strs+4540)
+
+#endif /* not defined __doxygen__ */
+
+/*
+ * Create the static procedure(s) declared above.
+ */
+/**
+ * The callout function that invokes the optionUsage function.
+ *
+ * @param pOptions the AutoOpts option description structure
+ * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @noreturn
+ */
+static void
+doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
+{
+ optionUsage(&certtoolOptions, CERTTOOL_EXIT_SUCCESS);
+ /* NOTREACHED */
+ (void)pOptDesc;
+ (void)pOptions;
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the debug option.
+ *
+ * @param pOptions the certtool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0 , 9999 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the infile option.
+ *
+ * @param pOptions the certtool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the load-request option.
+ *
+ * @param pOptions the certtool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptLoad_Request(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the inraw option.
+ *
+ * @param pOptions the certtool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptInraw(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_INDER);
+ if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
+ USAGE(CERTTOOL_EXIT_FAILURE);
+
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the outraw option.
+ *
+ * @param pOptions the certtool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptOutraw(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_OUTDER);
+ if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
+ USAGE(CERTTOOL_EXIT_FAILURE);
+
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the template option.
+ *
+ * @param pOptions the certtool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptTemplate(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+/* extracted from optmain.tlib near line 1113 */
+
+/**
+ * The directory containing the data associated with certtool.
+ */
+#ifndef PKGDATADIR
+# define PKGDATADIR ""
+#endif
+
+/**
+ * Information about the person or institution that packaged certtool
+ * for the current distribution.
+ */
+#ifndef WITH_PACKAGER
+# define certtool_packager_info NULL
+#else
+static char const certtool_packager_info[] =
+ "Packaged by " WITH_PACKAGER
+
+# ifdef WITH_PACKAGER_VERSION
+ " ("WITH_PACKAGER_VERSION")"
+# endif
+
+# ifdef WITH_PACKAGER_BUG_REPORTS
+ "\nReport certtool bugs to " WITH_PACKAGER_BUG_REPORTS
+# endif
+ "\n";
+#endif
+#ifndef __doxygen__
+
+#endif /* __doxygen__ */
+/**
+ * The option definitions for certtool. The one structure that
+ * binds them all.
+ */
+tOptions certtoolOptions = {
+ OPTIONS_STRUCT_VERSION,
+ 0, NULL, /* original argc + argv */
+ ( OPTPROC_BASE
+ + OPTPROC_ERRSTOP
+ + OPTPROC_SHORTOPT
+ + OPTPROC_LONGOPT
+ + OPTPROC_NO_REQ_OPT
+ + OPTPROC_NEGATIONS
+ + OPTPROC_NO_ARGS
+ + OPTPROC_GNUUSAGE
+ + OPTPROC_MISUSE ),
+ 0, NULL, /* current option index, current option */
+ NULL, NULL, zPROGNAME,
+ zRcName, zCopyright, zLicenseDescrip,
+ zFullVersion, apzHomeList, zUsageTitle,
+ zExplain, zDetail, optDesc,
+ zBugsAddr, /* address to send bugs to */
+ NULL, NULL, /* extensions/saved state */
+ optionUsage, /* usage procedure */
+ translate_option_strings, /* translation procedure */
+ /*
+ * Indexes to special options
+ */
+ { INDEX_OPT_MORE_HELP, /* more-help option index */
+ NO_EQUIVALENT, /* save option index */
+ NO_EQUIVALENT, /* '-#' option index */
+ NO_EQUIVALENT /* index of default opt */
+ },
+ 56 /* full option count */, 53 /* user option count */,
+ certtool_full_usage, certtool_short_usage,
+ NULL, NULL,
+ PKGDATADIR, certtool_packager_info
+};
+
+#if ENABLE_NLS
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <autoopts/usage-txt.h>
+
+static char* AO_gettext(char const* pz);
+static void coerce_it(void** s);
+
+/**
+ * AutoGen specific wrapper function for gettext.
+ * It relies on the macro _() to convert from English to the target
+ * language, then strdup-duplicates the result string.
+ *
+ * @param[in] pz the input text used as a lookup key.
+ * @returns the translated text (if there is one),
+ * or the original text (if not).
+ */
+static char *
+AO_gettext(char const* pz)
+{
+ char* pzRes;
+ if (pz == NULL)
+ return NULL;
+ pzRes = _(pz);
+ if (pzRes == pz)
+ return pzRes;
+ pzRes = strdup(pzRes);
+ if (pzRes == NULL) {
+ fputs(_("No memory for duping translated strings\n"), stderr);
+ exit(CERTTOOL_EXIT_FAILURE);
+ }
+ return pzRes;
+}
+
+static void coerce_it(void** s) { *s = AO_gettext(*s);
+}
+
+/**
+ * Translate all the translatable strings in the certtoolOptions
+ * structure defined above. This is done only once.
+ */
+static void
+translate_option_strings(void)
+{
+ tOptions * const pOpt = &certtoolOptions;
+
+ /*
+ * Guard against re-translation. It won't work. The strings will have
+ * been changed by the first pass through this code. One shot only.
+ */
+ if (option_usage_text.field_ct != 0) {
+ /*
+ * Do the translations. The first pointer follows the field count
+ * field. The field count field is the size of a pointer.
+ */
+ tOptDesc * pOD = pOpt->pOptDesc;
+ char ** ppz = (char**)(void*)&(option_usage_text);
+ int ix = option_usage_text.field_ct;
+
+ do {
+ ppz++;
+ *ppz = AO_gettext(*ppz);
+ } while (--ix > 0);
+
+ coerce_it((void*)&(pOpt->pzCopyright));
+ coerce_it((void*)&(pOpt->pzCopyNotice));
+ coerce_it((void*)&(pOpt->pzFullVersion));
+ coerce_it((void*)&(pOpt->pzUsageTitle));
+ coerce_it((void*)&(pOpt->pzExplain));
+ coerce_it((void*)&(pOpt->pzDetail));
+ coerce_it((void*)&(pOpt->pzPackager));
+ coerce_it((void*)&(pOpt->pzShortUsage));
+ option_usage_text.field_ct = 0;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
+ coerce_it((void*)&(pOD->pzText));
+ }
+
+ if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
+ tOptDesc * pOD = pOpt->pOptDesc;
+ int ix;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
+ coerce_it((void*)&(pOD->pz_Name));
+ coerce_it((void*)&(pOD->pz_DisableName));
+ coerce_it((void*)&(pOD->pz_DisablePfx));
+ }
+ /* prevent re-translation */
+ certtoolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
+ }
+}
+
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+/* certtool-args.c ends here */
diff --git a/src/certtool-args.h b/src/certtool-args.h
new file mode 100644
index 0000000..7cf654f
--- /dev/null
+++ b/src/certtool-args.h
@@ -0,0 +1,289 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (certtool-args.h)
+ *
+ * It has been AutoGen-ed June 25, 2012 at 07:40:45 PM by AutoGen 5.16
+ * From the definitions certtool-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This header file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the certtool author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The certtool program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * certtool is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * certtool is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * This file contains the programmatic interface to the Automated
+ * Options generated for the certtool program.
+ * These macros are documented in the AutoGen info file in the
+ * "AutoOpts" chapter. Please refer to that doc for usage help.
+ */
+#ifndef AUTOOPTS_CERTTOOL_ARGS_H_GUARD
+#define AUTOOPTS_CERTTOOL_ARGS_H_GUARD 1
+#include "config.h"
+#include <autoopts/options.h>
+
+/*
+ * Ensure that the library used for compiling this generated header is at
+ * least as new as the version current when the header template was released
+ * (not counting patch version increments). Also ensure that the oldest
+ * tolerable version is at least as old as what was current when the header
+ * template was released.
+ */
+#define AO_TEMPLATE_VERSION 147460
+#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
+ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
+# error option template version mismatches autoopts/options.h header
+ Choke Me.
+#endif
+
+/*
+ * Enumeration of each option:
+ */
+typedef enum {
+ INDEX_OPT_DEBUG = 0,
+ INDEX_OPT_INFILE = 1,
+ INDEX_OPT_OUTFILE = 2,
+ INDEX_OPT_GENERATE_SELF_SIGNED = 3,
+ INDEX_OPT_GENERATE_CERTIFICATE = 4,
+ INDEX_OPT_GENERATE_PROXY = 5,
+ INDEX_OPT_GENERATE_CRL = 6,
+ INDEX_OPT_UPDATE_CERTIFICATE = 7,
+ INDEX_OPT_GENERATE_PRIVKEY = 8,
+ INDEX_OPT_GENERATE_REQUEST = 9,
+ INDEX_OPT_VERIFY_CHAIN = 10,
+ INDEX_OPT_VERIFY = 11,
+ INDEX_OPT_VERIFY_CRL = 12,
+ INDEX_OPT_GENERATE_DH_PARAMS = 13,
+ INDEX_OPT_GET_DH_PARAMS = 14,
+ INDEX_OPT_DH_INFO = 15,
+ INDEX_OPT_LOAD_PRIVKEY = 16,
+ INDEX_OPT_LOAD_PUBKEY = 17,
+ INDEX_OPT_LOAD_REQUEST = 18,
+ INDEX_OPT_LOAD_CERTIFICATE = 19,
+ INDEX_OPT_LOAD_CA_PRIVKEY = 20,
+ INDEX_OPT_LOAD_CA_CERTIFICATE = 21,
+ INDEX_OPT_PASSWORD = 22,
+ INDEX_OPT_CERTIFICATE_INFO = 23,
+ INDEX_OPT_CERTIFICATE_PUBKEY = 24,
+ INDEX_OPT_PGP_CERTIFICATE_INFO = 25,
+ INDEX_OPT_PGP_RING_INFO = 26,
+ INDEX_OPT_CRL_INFO = 27,
+ INDEX_OPT_CRQ_INFO = 28,
+ INDEX_OPT_NO_CRQ_EXTENSIONS = 29,
+ INDEX_OPT_P12_INFO = 30,
+ INDEX_OPT_P7_INFO = 31,
+ INDEX_OPT_SMIME_TO_P7 = 32,
+ INDEX_OPT_KEY_INFO = 33,
+ INDEX_OPT_PGP_KEY_INFO = 34,
+ INDEX_OPT_PUBKEY_INFO = 35,
+ INDEX_OPT_V1 = 36,
+ INDEX_OPT_TO_P12 = 37,
+ INDEX_OPT_TO_P8 = 38,
+ INDEX_OPT_PKCS8 = 39,
+ INDEX_OPT_RSA = 40,
+ INDEX_OPT_DSA = 41,
+ INDEX_OPT_ECC = 42,
+ INDEX_OPT_HASH = 43,
+ INDEX_OPT_INDER = 44,
+ INDEX_OPT_INRAW = 45,
+ INDEX_OPT_OUTDER = 46,
+ INDEX_OPT_OUTRAW = 47,
+ INDEX_OPT_BITS = 48,
+ INDEX_OPT_SEC_PARAM = 49,
+ INDEX_OPT_DISABLE_QUICK_RANDOM = 50,
+ INDEX_OPT_TEMPLATE = 51,
+ INDEX_OPT_PKCS_CIPHER = 52,
+ INDEX_OPT_VERSION = 53,
+ INDEX_OPT_HELP = 54,
+ INDEX_OPT_MORE_HELP = 55
+} teOptIndex;
+
+#define OPTION_CT 56
+#define CERTTOOL_VERSION "@VERSION@"
+#define CERTTOOL_FULL_VERSION "certtool @VERSION@"
+
+/*
+ * Interface defines for all options. Replace "n" with the UPPER_CASED
+ * option name (as in the teOptIndex enumeration above).
+ * e.g. HAVE_OPT(DEBUG)
+ */
+#define DESC(n) (certtoolOptions.pOptDesc[INDEX_OPT_## n])
+#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+#define OPT_ARG(n) (DESC(n).optArg.argString)
+#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+#define COUNT_OPT(n) (DESC(n).optOccCt)
+#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+#define CLEAR_OPT(n) STMTS( \
+ DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
+ if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
+ DESC(n).fOptState |= OPTST_DISABLED; \
+ DESC(n).optCookie = NULL )
+
+/* * * * * *
+ *
+ * Enumeration of certtool exit codes
+ */
+typedef enum {
+ CERTTOOL_EXIT_SUCCESS = 0,
+ CERTTOOL_EXIT_FAILURE = 1,
+ CERTTOOL_EXIT_LIBOPTS_FAILURE = 70
+} certtool_exit_code_t;
+/* * * * * *
+ *
+ * Interface defines for specific options.
+ */
+#define VALUE_OPT_DEBUG 'd'
+
+#define OPT_VALUE_DEBUG (DESC(DEBUG).optArg.argInt)
+#define VALUE_OPT_INFILE 1
+#define VALUE_OPT_OUTFILE 2
+#define VALUE_OPT_GENERATE_SELF_SIGNED 's'
+#define VALUE_OPT_GENERATE_CERTIFICATE 'c'
+#define VALUE_OPT_GENERATE_PROXY 5
+#define VALUE_OPT_GENERATE_CRL 6
+#define VALUE_OPT_UPDATE_CERTIFICATE 'u'
+#define VALUE_OPT_GENERATE_PRIVKEY 'p'
+#define VALUE_OPT_GENERATE_REQUEST 'q'
+#define VALUE_OPT_VERIFY_CHAIN 'e'
+#define VALUE_OPT_VERIFY 11
+#define VALUE_OPT_VERIFY_CRL 12
+#define VALUE_OPT_GENERATE_DH_PARAMS 13
+#define VALUE_OPT_GET_DH_PARAMS 14
+#define VALUE_OPT_DH_INFO 15
+#define VALUE_OPT_LOAD_PRIVKEY 16
+#define VALUE_OPT_LOAD_PUBKEY 17
+#define VALUE_OPT_LOAD_REQUEST 18
+#define VALUE_OPT_LOAD_CERTIFICATE 19
+#define VALUE_OPT_LOAD_CA_PRIVKEY 20
+#define VALUE_OPT_LOAD_CA_CERTIFICATE 21
+#define VALUE_OPT_PASSWORD 22
+#define VALUE_OPT_CERTIFICATE_INFO 'i'
+#define VALUE_OPT_CERTIFICATE_PUBKEY 24
+#define VALUE_OPT_PGP_CERTIFICATE_INFO 25
+#define VALUE_OPT_PGP_RING_INFO 26
+#define VALUE_OPT_CRL_INFO 'l'
+#define VALUE_OPT_CRQ_INFO 28
+#define VALUE_OPT_NO_CRQ_EXTENSIONS 29
+#define VALUE_OPT_P12_INFO 30
+#define VALUE_OPT_P7_INFO 31
+#define VALUE_OPT_SMIME_TO_P7 32
+#define VALUE_OPT_KEY_INFO 'k'
+#define VALUE_OPT_PGP_KEY_INFO 130
+#define VALUE_OPT_PUBKEY_INFO 131
+#define VALUE_OPT_V1 132
+#define VALUE_OPT_TO_P12 133
+#define VALUE_OPT_TO_P8 134
+#define VALUE_OPT_PKCS8 '8'
+#define VALUE_OPT_RSA 136
+#define VALUE_OPT_DSA 137
+#define VALUE_OPT_ECC 138
+#define VALUE_OPT_HASH 139
+#define VALUE_OPT_INDER 140
+#define VALUE_OPT_INRAW 141
+#define VALUE_OPT_OUTDER 142
+#define VALUE_OPT_OUTRAW 143
+#define VALUE_OPT_BITS 144
+
+#define OPT_VALUE_BITS (DESC(BITS).optArg.argInt)
+#define VALUE_OPT_SEC_PARAM 145
+#define VALUE_OPT_DISABLE_QUICK_RANDOM 146
+#define VALUE_OPT_TEMPLATE 147
+#define VALUE_OPT_PKCS_CIPHER 148
+#define VALUE_OPT_HELP 'h'
+#define VALUE_OPT_MORE_HELP '!'
+#define VALUE_OPT_VERSION 'v'
+/*
+ * Interface defines not associated with particular options
+ */
+#define ERRSKIP_OPTERR STMTS(certtoolOptions.fOptSet &= ~OPTPROC_ERRSTOP)
+#define ERRSTOP_OPTERR STMTS(certtoolOptions.fOptSet |= OPTPROC_ERRSTOP)
+#define RESTART_OPT(n) STMTS( \
+ certtoolOptions.curOptIdx = (n); \
+ certtoolOptions.pzCurOpt = NULL)
+#define START_OPT RESTART_OPT(1)
+#define USAGE(c) (*certtoolOptions.pUsageProc)(&certtoolOptions, c)
+/* extracted from opthead.tlib near line 484 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * global exported definitions
+ */
+#include <gettext.h>
+
+
+/* * * * * *
+ *
+ * Declare the certtool option descriptor.
+ */
+extern tOptions certtoolOptions;
+
+#if defined(ENABLE_NLS)
+# ifndef _
+# include <stdio.h>
+static inline char* aoGetsText(char const* pz) {
+ if (pz == NULL) return NULL;
+ return (char*)gettext(pz);
+}
+# define _(s) aoGetsText(s)
+# endif /* _() */
+
+# define OPT_NO_XLAT_CFG_NAMES STMTS(certtoolOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT_CFG;)
+# define OPT_NO_XLAT_OPT_NAMES STMTS(certtoolOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
+
+# define OPT_XLAT_CFG_NAMES STMTS(certtoolOptions.fOptSet &= \
+ ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
+# define OPT_XLAT_OPT_NAMES STMTS(certtoolOptions.fOptSet &= \
+ ~OPTPROC_NXLAT_OPT;)
+
+#else /* ENABLE_NLS */
+# define OPT_NO_XLAT_CFG_NAMES
+# define OPT_NO_XLAT_OPT_NAMES
+
+# define OPT_XLAT_CFG_NAMES
+# define OPT_XLAT_OPT_NAMES
+
+# ifndef _
+# define _(_s) _s
+# endif
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AUTOOPTS_CERTTOOL_ARGS_H_GUARD */
+/* certtool-args.h ends here */
diff --git a/src/cli-args.c b/src/cli-args.c
new file mode 100644
index 0000000..4559c09
--- /dev/null
+++ b/src/cli-args.c
@@ -0,0 +1,1423 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (cli-args.c)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:27 PM by AutoGen 5.16
+ * From the definitions cli-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This source file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the gnutls-cli author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The gnutls-cli program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * gnutls-cli is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * gnutls-cli is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __doxygen__
+#define OPTION_CODE_COMPILE 1
+#include "cli-args.h"
+#include <sys/types.h>
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern FILE * option_usage_fp;
+
+/* TRANSLATORS: choose the translation for option names wisely because you
+ cannot ever change your mind. */
+#define zCopyright (gnutls_cli_opt_strs+0)
+#define zLicenseDescrip (gnutls_cli_opt_strs+281)
+
+
+#ifndef NULL
+# define NULL 0
+#endif
+
+/*
+ * gnutls-cli option static const strings
+ */
+static char const gnutls_cli_opt_strs[3376] =
+/* 0 */ "gnutls-cli @address@hidden"
+ "Copyright (C) 2000-2012 Free Software Foundation, all rights
reserved.\n"
+ "This is free software. It is licensed for use, modification and\n"
+ "redistribution under the terms of the\n"
+ "GNU General Public License, version 3 or later\n"
+ " <http://gnu.org/licenses/gpl.html>\n\0"
+/* 281 */ "gnutls-cli is free software: you can redistribute it and/or
modify it under\n"
+ "the terms of the GNU General Public License as published by the
Free\n"
+ "Software Foundation, either version 3 of the License, or (at your
option)\n"
+ "any later version.\n\n"
+ "gnutls-cli is distributed in the hope that it will be useful, but
WITHOUT\n"
+ "ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or\n"
+ "FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for\n"
+ "more details.\n\n"
+ "You should have received a copy of the GNU General Public License
along\n"
+ "with this program. If not, see
<http://www.gnu.org/licenses/>.\n\0"
+/* 890 */ "Enable debugging.\0"
+/* 908 */ "DEBUG\0"
+/* 914 */ "debug\0"
+/* 920 */ "More verbose output\0"
+/* 940 */ "VERBOSE\0"
+/* 948 */ "verbose\0"
+/* 956 */ "Enable trust on first use authentication\0"
+/* 997 */ "TOFU\0"
+/* 1002 */ "no-tofu\0"
+/* 1010 */ "no\0"
+/* 1013 */ "Enable OCSP certificate verification\0"
+/* 1050 */ "OCSP\0"
+/* 1055 */ "no-ocsp\0"
+/* 1063 */ "Establish a session and resume\0"
+/* 1094 */ "RESUME\0"
+/* 1101 */ "resume\0"
+/* 1108 */ "Establish a session and rehandshake\0"
+/* 1144 */ "REHANDSHAKE\0"
+/* 1156 */ "rehandshake\0"
+/* 1168 */ "Don't accept session tickets\0"
+/* 1197 */ "NOTICKET\0"
+/* 1206 */ "noticket\0"
+/* 1215 */ "Connect, establish a plain session and start TLS.\0"
+/* 1265 */ "STARTTLS\0"
+/* 1274 */ "starttls\0"
+/* 1283 */ "Use DTLS (datagram TLS) over UDP\0"
+/* 1316 */ "UDP\0"
+/* 1320 */ "udp\0"
+/* 1324 */ "Set MTU for datagram TLS\0"
+/* 1349 */ "MTU\0"
+/* 1353 */ "mtu\0"
+/* 1357 */ "Send CR LF instead of LF\0"
+/* 1382 */ "CRLF\0"
+/* 1387 */ "crlf\0"
+/* 1392 */ "Use DER format for certificates to read from\0"
+/* 1437 */ "X509FMTDER\0"
+/* 1448 */ "x509fmtder\0"
+/* 1459 */ "Send the openpgp fingerprint, instead of the key\0"
+/* 1508 */ "FINGERPRINT\0"
+/* 1520 */ "fingerprint\0"
+/* 1532 */ "Disable all the TLS extensions\0"
+/* 1563 */ "DISABLE_EXTENSIONS\0"
+/* 1582 */ "disable-extensions\0"
+/* 1601 */ "Print peer's certificate in PEM format\0"
+/* 1640 */ "PRINT_CERT\0"
+/* 1651 */ "print-cert\0"
+/* 1662 */ "The maximum record size to advertize\0"
+/* 1699 */ "RECORDSIZE\0"
+/* 1710 */ "recordsize\0"
+/* 1721 */ "Priorities string\0"
+/* 1739 */ "PRIORITY\0"
+/* 1748 */ "priority\0"
+/* 1757 */ "Certificate file or PKCS #11 URL to use\0"
+/* 1797 */ "X509CAFILE\0"
+/* 1808 */ "x509cafile\0"
+/* 1819 */ "CRL file to use\0"
+/* 1835 */ "X509CRLFILE\0"
+/* 1847 */ "x509crlfile\0"
+/* 1859 */ "PGP Key file to use\0"
+/* 1879 */ "PGPKEYFILE\0"
+/* 1890 */ "pgpkeyfile\0"
+/* 1901 */ "PGP Key ring file to use\0"
+/* 1926 */ "PGPKEYRING\0"
+/* 1937 */ "pgpkeyring\0"
+/* 1948 */ "PGP Public Key (certificate) file to use\0"
+/* 1989 */ "PGPCERTFILE\0"
+/* 2001 */ "pgpcertfile\0"
+/* 2013 */ "X.509 key file or PKCS #11 URL to use\0"
+/* 2051 */ "X509KEYFILE\0"
+/* 2063 */ "x509keyfile\0"
+/* 2075 */ "X.509 Certificate file or PKCS #11 URL to use\0"
+/* 2121 */ "X509CERTFILE\0"
+/* 2134 */ "x509certfile\0"
+/* 2147 */ "PGP subkey to use (hex or auto)\0"
+/* 2179 */ "PGPSUBKEY\0"
+/* 2189 */ "pgpsubkey\0"
+/* 2199 */ "SRP username to use\0"
+/* 2219 */ "SRPUSERNAME\0"
+/* 2231 */ "srpusername\0"
+/* 2243 */ "SRP password to use\0"
+/* 2263 */ "SRPPASSWD\0"
+/* 2273 */ "srppasswd\0"
+/* 2283 */ "PSK username to use\0"
+/* 2303 */ "PSKUSERNAME\0"
+/* 2315 */ "pskusername\0"
+/* 2327 */ "PSK key (in hex) to use\0"
+/* 2351 */ "PSKKEY\0"
+/* 2358 */ "pskkey\0"
+/* 2365 */ "The port or service to connect to\0"
+/* 2399 */ "PORT\0"
+/* 2404 */ "port\0"
+/* 2409 */ "Don't abort program if server certificate can't be validated\0"
+/* 2470 */ "INSECURE\0"
+/* 2479 */ "insecure\0"
+/* 2488 */ "Benchmark individual ciphers\0"
+/* 2517 */ "BENCHMARK_CIPHERS\0"
+/* 2535 */ "benchmark-ciphers\0"
+/* 2553 */ "Benchmark individual software ciphers (no hw acceleration)\0"
+/* 2612 */ "BENCHMARK_SOFT_CIPHERS\0"
+/* 2635 */ "benchmark-soft-ciphers\0"
+/* 2658 */ "Benchmark ciphers and key exchange methods in TLS\0"
+/* 2708 */ "BENCHMARK_TLS\0"
+/* 2722 */ "benchmark-tls\0"
+/* 2736 */ "Print a list of the supported algorithms and modes\0"
+/* 2787 */ "LIST\0"
+/* 2792 */ "list\0"
+/* 2797 */ "Display extended usage information and exit\0"
+/* 2841 */ "help\0"
+/* 2846 */ "Extended usage information passed thru pager\0"
+/* 2891 */ "more-help\0"
+/* 2901 */ "Output version information and exit\0"
+/* 2937 */ "version\0"
+/* 2945 */ "GNUTLS_CLI\0"
+/* 2956 */ "gnutls-cli - GnuTLS client - Ver. @address@hidden"
+ "USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
[hostname]\n\0"
+/* 3069 */ "address@hidden"
+/* 3088 */ "\n\n\0"
+/* 3091 */ "\n"
+ "Simple client program to set up a TLS connection to some other
computer. It\n"
+ "sets up a TLS connection and forwards data from the standard
input to the\n"
+ "secured socket and vice versa.\n\0"
+/* 3275 */ "gnutls-cli @address@hidden"
+/* 3296 */ "Usage: gnutls-cli [options] hostname\n"
+ "gnutls-cli --help for usage instructions.\n";
+
+/*
+ * debug option description:
+ */
+#define DEBUG_DESC (gnutls_cli_opt_strs+890)
+#define DEBUG_NAME (gnutls_cli_opt_strs+908)
+#define DEBUG_name (gnutls_cli_opt_strs+914)
+#define DEBUG_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * verbose option description:
+ */
+#define VERBOSE_DESC (gnutls_cli_opt_strs+920)
+#define VERBOSE_NAME (gnutls_cli_opt_strs+940)
+#define VERBOSE_name (gnutls_cli_opt_strs+948)
+#define VERBOSE_FLAGS (OPTST_DISABLED)
+
+/*
+ * tofu option description:
+ */
+#define TOFU_DESC (gnutls_cli_opt_strs+956)
+#define TOFU_NAME (gnutls_cli_opt_strs+997)
+#define NOT_TOFU_name (gnutls_cli_opt_strs+1002)
+#define NOT_TOFU_PFX (gnutls_cli_opt_strs+1010)
+#define TOFU_name (NOT_TOFU_name + 3)
+#define TOFU_FLAGS (OPTST_DISABLED)
+
+/*
+ * ocsp option description:
+ */
+#define OCSP_DESC (gnutls_cli_opt_strs+1013)
+#define OCSP_NAME (gnutls_cli_opt_strs+1050)
+#define NOT_OCSP_name (gnutls_cli_opt_strs+1055)
+#define NOT_OCSP_PFX (gnutls_cli_opt_strs+1010)
+#define OCSP_name (NOT_OCSP_name + 3)
+#define OCSP_FLAGS (OPTST_DISABLED)
+
+/*
+ * resume option description:
+ */
+#define RESUME_DESC (gnutls_cli_opt_strs+1063)
+#define RESUME_NAME (gnutls_cli_opt_strs+1094)
+#define RESUME_name (gnutls_cli_opt_strs+1101)
+#define RESUME_FLAGS (OPTST_DISABLED)
+
+/*
+ * rehandshake option description:
+ */
+#define REHANDSHAKE_DESC (gnutls_cli_opt_strs+1108)
+#define REHANDSHAKE_NAME (gnutls_cli_opt_strs+1144)
+#define REHANDSHAKE_name (gnutls_cli_opt_strs+1156)
+#define REHANDSHAKE_FLAGS (OPTST_DISABLED)
+
+/*
+ * noticket option description:
+ */
+#define NOTICKET_DESC (gnutls_cli_opt_strs+1168)
+#define NOTICKET_NAME (gnutls_cli_opt_strs+1197)
+#define NOTICKET_name (gnutls_cli_opt_strs+1206)
+#define NOTICKET_FLAGS (OPTST_DISABLED)
+
+/*
+ * starttls option description:
+ */
+#define STARTTLS_DESC (gnutls_cli_opt_strs+1215)
+#define STARTTLS_NAME (gnutls_cli_opt_strs+1265)
+#define STARTTLS_name (gnutls_cli_opt_strs+1274)
+#define STARTTLS_FLAGS (OPTST_DISABLED)
+
+/*
+ * udp option description:
+ */
+#define UDP_DESC (gnutls_cli_opt_strs+1283)
+#define UDP_NAME (gnutls_cli_opt_strs+1316)
+#define UDP_name (gnutls_cli_opt_strs+1320)
+#define UDP_FLAGS (OPTST_DISABLED)
+
+/*
+ * mtu option description:
+ */
+#define MTU_DESC (gnutls_cli_opt_strs+1324)
+#define MTU_NAME (gnutls_cli_opt_strs+1349)
+#define MTU_name (gnutls_cli_opt_strs+1353)
+#define MTU_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * crlf option description:
+ */
+#define CRLF_DESC (gnutls_cli_opt_strs+1357)
+#define CRLF_NAME (gnutls_cli_opt_strs+1382)
+#define CRLF_name (gnutls_cli_opt_strs+1387)
+#define CRLF_FLAGS (OPTST_DISABLED)
+
+/*
+ * x509fmtder option description:
+ */
+#define X509FMTDER_DESC (gnutls_cli_opt_strs+1392)
+#define X509FMTDER_NAME (gnutls_cli_opt_strs+1437)
+#define X509FMTDER_name (gnutls_cli_opt_strs+1448)
+#define X509FMTDER_FLAGS (OPTST_DISABLED)
+
+/*
+ * fingerprint option description:
+ */
+#define FINGERPRINT_DESC (gnutls_cli_opt_strs+1459)
+#define FINGERPRINT_NAME (gnutls_cli_opt_strs+1508)
+#define FINGERPRINT_name (gnutls_cli_opt_strs+1520)
+#define FINGERPRINT_FLAGS (OPTST_DISABLED)
+
+/*
+ * disable-extensions option description:
+ */
+#define DISABLE_EXTENSIONS_DESC (gnutls_cli_opt_strs+1532)
+#define DISABLE_EXTENSIONS_NAME (gnutls_cli_opt_strs+1563)
+#define DISABLE_EXTENSIONS_name (gnutls_cli_opt_strs+1582)
+#define DISABLE_EXTENSIONS_FLAGS (OPTST_DISABLED)
+
+/*
+ * print-cert option description:
+ */
+#define PRINT_CERT_DESC (gnutls_cli_opt_strs+1601)
+#define PRINT_CERT_NAME (gnutls_cli_opt_strs+1640)
+#define PRINT_CERT_name (gnutls_cli_opt_strs+1651)
+#define PRINT_CERT_FLAGS (OPTST_DISABLED)
+
+/*
+ * recordsize option description:
+ */
+#define RECORDSIZE_DESC (gnutls_cli_opt_strs+1662)
+#define RECORDSIZE_NAME (gnutls_cli_opt_strs+1699)
+#define RECORDSIZE_name (gnutls_cli_opt_strs+1710)
+#define RECORDSIZE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * priority option description:
+ */
+#define PRIORITY_DESC (gnutls_cli_opt_strs+1721)
+#define PRIORITY_NAME (gnutls_cli_opt_strs+1739)
+#define PRIORITY_name (gnutls_cli_opt_strs+1748)
+#define PRIORITY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * x509cafile option description:
+ */
+#define X509CAFILE_DESC (gnutls_cli_opt_strs+1757)
+#define X509CAFILE_NAME (gnutls_cli_opt_strs+1797)
+#define X509CAFILE_name (gnutls_cli_opt_strs+1808)
+#define X509CAFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * x509crlfile option description:
+ */
+#define X509CRLFILE_DESC (gnutls_cli_opt_strs+1819)
+#define X509CRLFILE_NAME (gnutls_cli_opt_strs+1835)
+#define X509CRLFILE_name (gnutls_cli_opt_strs+1847)
+#define X509CRLFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * pgpkeyfile option description:
+ */
+#define PGPKEYFILE_DESC (gnutls_cli_opt_strs+1859)
+#define PGPKEYFILE_NAME (gnutls_cli_opt_strs+1879)
+#define PGPKEYFILE_name (gnutls_cli_opt_strs+1890)
+#define PGPKEYFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * pgpkeyring option description:
+ */
+#define PGPKEYRING_DESC (gnutls_cli_opt_strs+1901)
+#define PGPKEYRING_NAME (gnutls_cli_opt_strs+1926)
+#define PGPKEYRING_name (gnutls_cli_opt_strs+1937)
+#define PGPKEYRING_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * pgpcertfile option description:
+ */
+#define PGPCERTFILE_DESC (gnutls_cli_opt_strs+1948)
+#define PGPCERTFILE_NAME (gnutls_cli_opt_strs+1989)
+#define PGPCERTFILE_name (gnutls_cli_opt_strs+2001)
+#define PGPCERTFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * x509keyfile option description:
+ */
+#define X509KEYFILE_DESC (gnutls_cli_opt_strs+2013)
+#define X509KEYFILE_NAME (gnutls_cli_opt_strs+2051)
+#define X509KEYFILE_name (gnutls_cli_opt_strs+2063)
+#define X509KEYFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * x509certfile option description:
+ */
+#define X509CERTFILE_DESC (gnutls_cli_opt_strs+2075)
+#define X509CERTFILE_NAME (gnutls_cli_opt_strs+2121)
+#define X509CERTFILE_name (gnutls_cli_opt_strs+2134)
+#define X509CERTFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * pgpsubkey option description:
+ */
+#define PGPSUBKEY_DESC (gnutls_cli_opt_strs+2147)
+#define PGPSUBKEY_NAME (gnutls_cli_opt_strs+2179)
+#define PGPSUBKEY_name (gnutls_cli_opt_strs+2189)
+#define PGPSUBKEY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * srpusername option description:
+ */
+#define SRPUSERNAME_DESC (gnutls_cli_opt_strs+2199)
+#define SRPUSERNAME_NAME (gnutls_cli_opt_strs+2219)
+#define SRPUSERNAME_name (gnutls_cli_opt_strs+2231)
+#define SRPUSERNAME_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * srppasswd option description:
+ */
+#define SRPPASSWD_DESC (gnutls_cli_opt_strs+2243)
+#define SRPPASSWD_NAME (gnutls_cli_opt_strs+2263)
+#define SRPPASSWD_name (gnutls_cli_opt_strs+2273)
+#define SRPPASSWD_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * pskusername option description:
+ */
+#define PSKUSERNAME_DESC (gnutls_cli_opt_strs+2283)
+#define PSKUSERNAME_NAME (gnutls_cli_opt_strs+2303)
+#define PSKUSERNAME_name (gnutls_cli_opt_strs+2315)
+#define PSKUSERNAME_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * pskkey option description:
+ */
+#define PSKKEY_DESC (gnutls_cli_opt_strs+2327)
+#define PSKKEY_NAME (gnutls_cli_opt_strs+2351)
+#define PSKKEY_name (gnutls_cli_opt_strs+2358)
+#define PSKKEY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * port option description:
+ */
+#define PORT_DESC (gnutls_cli_opt_strs+2365)
+#define PORT_NAME (gnutls_cli_opt_strs+2399)
+#define PORT_name (gnutls_cli_opt_strs+2404)
+#define PORT_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * insecure option description:
+ */
+#define INSECURE_DESC (gnutls_cli_opt_strs+2409)
+#define INSECURE_NAME (gnutls_cli_opt_strs+2470)
+#define INSECURE_name (gnutls_cli_opt_strs+2479)
+#define INSECURE_FLAGS (OPTST_DISABLED)
+
+/*
+ * benchmark-ciphers option description:
+ */
+#define BENCHMARK_CIPHERS_DESC (gnutls_cli_opt_strs+2488)
+#define BENCHMARK_CIPHERS_NAME (gnutls_cli_opt_strs+2517)
+#define BENCHMARK_CIPHERS_name (gnutls_cli_opt_strs+2535)
+#define BENCHMARK_CIPHERS_FLAGS (OPTST_DISABLED)
+
+/*
+ * benchmark-soft-ciphers option description:
+ */
+#define BENCHMARK_SOFT_CIPHERS_DESC (gnutls_cli_opt_strs+2553)
+#define BENCHMARK_SOFT_CIPHERS_NAME (gnutls_cli_opt_strs+2612)
+#define BENCHMARK_SOFT_CIPHERS_name (gnutls_cli_opt_strs+2635)
+#define BENCHMARK_SOFT_CIPHERS_FLAGS (OPTST_DISABLED)
+
+/*
+ * benchmark-tls option description:
+ */
+#define BENCHMARK_TLS_DESC (gnutls_cli_opt_strs+2658)
+#define BENCHMARK_TLS_NAME (gnutls_cli_opt_strs+2708)
+#define BENCHMARK_TLS_name (gnutls_cli_opt_strs+2722)
+#define BENCHMARK_TLS_FLAGS (OPTST_DISABLED)
+
+/*
+ * list option description:
+ */
+#define LIST_DESC (gnutls_cli_opt_strs+2736)
+#define LIST_NAME (gnutls_cli_opt_strs+2787)
+#define LIST_name (gnutls_cli_opt_strs+2792)
+#define LIST_FLAGS (OPTST_DISABLED)
+
+/*
+ * Help/More_Help/Version option descriptions:
+ */
+#define HELP_DESC (gnutls_cli_opt_strs+2797)
+#define HELP_name (gnutls_cli_opt_strs+2841)
+#ifdef HAVE_WORKING_FORK
+#define MORE_HELP_DESC (gnutls_cli_opt_strs+2846)
+#define MORE_HELP_name (gnutls_cli_opt_strs+2891)
+#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+#define MORE_HELP_DESC NULL
+#define MORE_HELP_name NULL
+#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
+#endif
+#ifdef NO_OPTIONAL_OPT_ARGS
+# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
+ OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
+#endif
+#define VER_DESC (gnutls_cli_opt_strs+2901)
+#define VER_name (gnutls_cli_opt_strs+2937)
+/*
+ * Declare option callback procedures
+ */
+extern tOptProc
+ optionBooleanVal, optionNestedVal, optionNumericVal,
+ optionPagedUsage, optionPrintVersion, optionResetOpt,
+ optionStackArg, optionTimeDate, optionTimeVal,
+ optionUnstackArg, optionVendorOption;
+static tOptProc
+ doOptDebug, doOptMtu, doOptPgpcertfile, doOptPgpkeyfile,
+ doOptPgpkeyring, doOptRecordsize, doOptX509crlfile, doUsageOpt;
+#define VER_PROC optionPrintVersion
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Define the gnutls-cli Option Descriptions.
+ * This is an array of OPTION_CT entries, one for each
+ * option that the gnutls-cli program responds to.
+ */
+static tOptDesc optDesc[OPTION_CT] = {
+ { /* entry idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equiv idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DEBUG_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --debug */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptDebug,
+ /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 1, VALUE_OPT_VERBOSE,
+ /* equiv idx, value */ 1, VALUE_OPT_VERBOSE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, NOLIMIT, 0,
+ /* opt state flags */ VERBOSE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --verbose */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ VERBOSE_DESC, VERBOSE_NAME, VERBOSE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 2, VALUE_OPT_TOFU,
+ /* equiv idx, value */ 2, VALUE_OPT_TOFU,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ TOFU_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --tofu */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ TOFU_DESC, TOFU_NAME, TOFU_name,
+ /* disablement strs */ NOT_TOFU_name, NOT_TOFU_PFX },
+
+ { /* entry idx, value */ 3, VALUE_OPT_OCSP,
+ /* equiv idx, value */ 3, VALUE_OPT_OCSP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OCSP_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --ocsp */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ OCSP_DESC, OCSP_NAME, OCSP_name,
+ /* disablement strs */ NOT_OCSP_name, NOT_OCSP_PFX },
+
+ { /* entry idx, value */ 4, VALUE_OPT_RESUME,
+ /* equiv idx, value */ 4, VALUE_OPT_RESUME,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ RESUME_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --resume */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ RESUME_DESC, RESUME_NAME, RESUME_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 5, VALUE_OPT_REHANDSHAKE,
+ /* equiv idx, value */ 5, VALUE_OPT_REHANDSHAKE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ REHANDSHAKE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --rehandshake */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ REHANDSHAKE_DESC, REHANDSHAKE_NAME,
REHANDSHAKE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 6, VALUE_OPT_NOTICKET,
+ /* equiv idx, value */ 6, VALUE_OPT_NOTICKET,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ NOTICKET_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --noticket */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ NOTICKET_DESC, NOTICKET_NAME, NOTICKET_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 7, VALUE_OPT_STARTTLS,
+ /* equiv idx, value */ 7, VALUE_OPT_STARTTLS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ STARTTLS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --starttls */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ STARTTLS_DESC, STARTTLS_NAME, STARTTLS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 8, VALUE_OPT_UDP,
+ /* equiv idx, value */ 8, VALUE_OPT_UDP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ UDP_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --udp */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ UDP_DESC, UDP_NAME, UDP_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 9, VALUE_OPT_MTU,
+ /* equiv idx, value */ 9, VALUE_OPT_MTU,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ MTU_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --mtu */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptMtu,
+ /* desc, NAME, name */ MTU_DESC, MTU_NAME, MTU_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 10, VALUE_OPT_CRLF,
+ /* equiv idx, value */ 10, VALUE_OPT_CRLF,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ CRLF_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --crlf */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ CRLF_DESC, CRLF_NAME, CRLF_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 11, VALUE_OPT_X509FMTDER,
+ /* equiv idx, value */ 11, VALUE_OPT_X509FMTDER,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509FMTDER_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509fmtder */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509FMTDER_DESC, X509FMTDER_NAME, X509FMTDER_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 12, VALUE_OPT_FINGERPRINT,
+ /* equiv idx, value */ 12, VALUE_OPT_FINGERPRINT,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ FINGERPRINT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --fingerprint */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ FINGERPRINT_DESC, FINGERPRINT_NAME,
FINGERPRINT_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 13, VALUE_OPT_DISABLE_EXTENSIONS,
+ /* equiv idx, value */ 13, VALUE_OPT_DISABLE_EXTENSIONS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DISABLE_EXTENSIONS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --disable-extensions */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ DISABLE_EXTENSIONS_DESC, DISABLE_EXTENSIONS_NAME,
DISABLE_EXTENSIONS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 14, VALUE_OPT_PRINT_CERT,
+ /* equiv idx, value */ 14, VALUE_OPT_PRINT_CERT,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PRINT_CERT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --print-cert */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PRINT_CERT_DESC, PRINT_CERT_NAME, PRINT_CERT_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 15, VALUE_OPT_RECORDSIZE,
+ /* equiv idx, value */ 15, VALUE_OPT_RECORDSIZE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ RECORDSIZE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --recordsize */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptRecordsize,
+ /* desc, NAME, name */ RECORDSIZE_DESC, RECORDSIZE_NAME, RECORDSIZE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 16, VALUE_OPT_PRIORITY,
+ /* equiv idx, value */ 16, VALUE_OPT_PRIORITY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PRIORITY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --priority */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PRIORITY_DESC, PRIORITY_NAME, PRIORITY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 17, VALUE_OPT_X509CAFILE,
+ /* equiv idx, value */ 17, VALUE_OPT_X509CAFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509CAFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509cafile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509CAFILE_DESC, X509CAFILE_NAME, X509CAFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 18, VALUE_OPT_X509CRLFILE,
+ /* equiv idx, value */ 18, VALUE_OPT_X509CRLFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509CRLFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509crlfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptX509crlfile,
+ /* desc, NAME, name */ X509CRLFILE_DESC, X509CRLFILE_NAME,
X509CRLFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 19, VALUE_OPT_PGPKEYFILE,
+ /* equiv idx, value */ 19, VALUE_OPT_PGPKEYFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGPKEYFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgpkeyfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptPgpkeyfile,
+ /* desc, NAME, name */ PGPKEYFILE_DESC, PGPKEYFILE_NAME, PGPKEYFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 20, VALUE_OPT_PGPKEYRING,
+ /* equiv idx, value */ 20, VALUE_OPT_PGPKEYRING,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGPKEYRING_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgpkeyring */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptPgpkeyring,
+ /* desc, NAME, name */ PGPKEYRING_DESC, PGPKEYRING_NAME, PGPKEYRING_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 21, VALUE_OPT_PGPCERTFILE,
+ /* equiv idx, value */ 21, VALUE_OPT_PGPCERTFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGPCERTFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgpcertfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptPgpcertfile,
+ /* desc, NAME, name */ PGPCERTFILE_DESC, PGPCERTFILE_NAME,
PGPCERTFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 22, VALUE_OPT_X509KEYFILE,
+ /* equiv idx, value */ 22, VALUE_OPT_X509KEYFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509KEYFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509keyfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509KEYFILE_DESC, X509KEYFILE_NAME,
X509KEYFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 23, VALUE_OPT_X509CERTFILE,
+ /* equiv idx, value */ 23, VALUE_OPT_X509CERTFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509CERTFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509certfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509CERTFILE_DESC, X509CERTFILE_NAME,
X509CERTFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 24, VALUE_OPT_PGPSUBKEY,
+ /* equiv idx, value */ 24, VALUE_OPT_PGPSUBKEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGPSUBKEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgpsubkey */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PGPSUBKEY_DESC, PGPSUBKEY_NAME, PGPSUBKEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 25, VALUE_OPT_SRPUSERNAME,
+ /* equiv idx, value */ 25, VALUE_OPT_SRPUSERNAME,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ SRPUSERNAME_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --srpusername */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ SRPUSERNAME_DESC, SRPUSERNAME_NAME,
SRPUSERNAME_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 26, VALUE_OPT_SRPPASSWD,
+ /* equiv idx, value */ 26, VALUE_OPT_SRPPASSWD,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ SRPPASSWD_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --srppasswd */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ SRPPASSWD_DESC, SRPPASSWD_NAME, SRPPASSWD_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 27, VALUE_OPT_PSKUSERNAME,
+ /* equiv idx, value */ 27, VALUE_OPT_PSKUSERNAME,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PSKUSERNAME_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pskusername */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PSKUSERNAME_DESC, PSKUSERNAME_NAME,
PSKUSERNAME_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 28, VALUE_OPT_PSKKEY,
+ /* equiv idx, value */ 28, VALUE_OPT_PSKKEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PSKKEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pskkey */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PSKKEY_DESC, PSKKEY_NAME, PSKKEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 29, VALUE_OPT_PORT,
+ /* equiv idx, value */ 29, VALUE_OPT_PORT,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PORT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --port */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PORT_DESC, PORT_NAME, PORT_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 30, VALUE_OPT_INSECURE,
+ /* equiv idx, value */ 30, VALUE_OPT_INSECURE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ INSECURE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --insecure */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ INSECURE_DESC, INSECURE_NAME, INSECURE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 31, VALUE_OPT_BENCHMARK_CIPHERS,
+ /* equiv idx, value */ 31, VALUE_OPT_BENCHMARK_CIPHERS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ BENCHMARK_CIPHERS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --benchmark-ciphers */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ BENCHMARK_CIPHERS_DESC, BENCHMARK_CIPHERS_NAME,
BENCHMARK_CIPHERS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 32, VALUE_OPT_BENCHMARK_SOFT_CIPHERS,
+ /* equiv idx, value */ 32, VALUE_OPT_BENCHMARK_SOFT_CIPHERS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ BENCHMARK_SOFT_CIPHERS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --benchmark-soft-ciphers */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ BENCHMARK_SOFT_CIPHERS_DESC,
BENCHMARK_SOFT_CIPHERS_NAME, BENCHMARK_SOFT_CIPHERS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 33, VALUE_OPT_BENCHMARK_TLS,
+ /* equiv idx, value */ 33, VALUE_OPT_BENCHMARK_TLS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ BENCHMARK_TLS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --benchmark-tls */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ BENCHMARK_TLS_DESC, BENCHMARK_TLS_NAME,
BENCHMARK_TLS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 34, VALUE_OPT_LIST,
+ /* equiv idx, value */ 34, VALUE_OPT_LIST,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LIST_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --list */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LIST_DESC, LIST_NAME, LIST_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VER_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ VER_PROC,
+ /* desc, NAME, name */ VER_DESC, NULL, VER_name,
+ /* disablement strs */ NULL, NULL },
+
+
+
+ { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doUsageOpt,
+ /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ MORE_HELP_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionPagedUsage,
+ /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
+ /* disablement strs */ NULL, NULL }
+};
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Define the gnutls-cli Option Environment
+ */
+#define zPROGNAME (gnutls_cli_opt_strs+2945)
+#define zUsageTitle (gnutls_cli_opt_strs+2956)
+#define zRcName NULL
+#define apzHomeList NULL
+#define zBugsAddr (gnutls_cli_opt_strs+3069)
+#define zExplain (gnutls_cli_opt_strs+3088)
+#define zDetail (gnutls_cli_opt_strs+3091)
+#define zFullVersion (gnutls_cli_opt_strs+3275)
+/* extracted from optcode.tlib near line 350 */
+
+#if defined(ENABLE_NLS)
+# define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
+ static tOptionXlateProc translate_option_strings;
+#else
+# define OPTPROC_BASE OPTPROC_NONE
+# define translate_option_strings NULL
+#endif /* ENABLE_NLS */
+
+
+#define gnutls_cli_full_usage (NULL)
+
+#define gnutls_cli_short_usage (gnutls_cli_opt_strs+3296)
+
+#endif /* not defined __doxygen__ */
+
+/*
+ * Create the static procedure(s) declared above.
+ */
+/**
+ * The callout function that invokes the optionUsage function.
+ *
+ * @param pOptions the AutoOpts option description structure
+ * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @noreturn
+ */
+static void
+doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
+{
+ optionUsage(&gnutls_cliOptions, GNUTLS_CLI_EXIT_SUCCESS);
+ /* NOTREACHED */
+ (void)pOptDesc;
+ (void)pOptions;
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the debug option.
+ *
+ * @param pOptions the gnutls-cli options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0 , 9999 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the mtu option.
+ *
+ * @param pOptions the gnutls-cli options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptMtu(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0, 17000 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the recordsize option.
+ *
+ * @param pOptions the gnutls-cli options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptRecordsize(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0, 4096 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the x509crlfile option.
+ *
+ * @param pOptions the gnutls-cli options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptX509crlfile(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the pgpkeyfile option.
+ *
+ * @param pOptions the gnutls-cli options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptPgpkeyfile(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the pgpkeyring option.
+ *
+ * @param pOptions the gnutls-cli options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptPgpkeyring(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the pgpcertfile option.
+ *
+ * @param pOptions the gnutls-cli options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptPgpcertfile(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+/* extracted from optmain.tlib near line 1113 */
+
+/**
+ * The directory containing the data associated with gnutls-cli.
+ */
+#ifndef PKGDATADIR
+# define PKGDATADIR ""
+#endif
+
+/**
+ * Information about the person or institution that packaged gnutls-cli
+ * for the current distribution.
+ */
+#ifndef WITH_PACKAGER
+# define gnutls_cli_packager_info NULL
+#else
+static char const gnutls_cli_packager_info[] =
+ "Packaged by " WITH_PACKAGER
+
+# ifdef WITH_PACKAGER_VERSION
+ " ("WITH_PACKAGER_VERSION")"
+# endif
+
+# ifdef WITH_PACKAGER_BUG_REPORTS
+ "\nReport gnutls_cli bugs to " WITH_PACKAGER_BUG_REPORTS
+# endif
+ "\n";
+#endif
+#ifndef __doxygen__
+
+#endif /* __doxygen__ */
+/**
+ * The option definitions for gnutls-cli. The one structure that
+ * binds them all.
+ */
+tOptions gnutls_cliOptions = {
+ OPTIONS_STRUCT_VERSION,
+ 0, NULL, /* original argc + argv */
+ ( OPTPROC_BASE
+ + OPTPROC_ERRSTOP
+ + OPTPROC_SHORTOPT
+ + OPTPROC_LONGOPT
+ + OPTPROC_NO_REQ_OPT
+ + OPTPROC_NEGATIONS
+ + OPTPROC_REORDER
+ + OPTPROC_GNUUSAGE
+ + OPTPROC_MISUSE ),
+ 0, NULL, /* current option index, current option */
+ NULL, NULL, zPROGNAME,
+ zRcName, zCopyright, zLicenseDescrip,
+ zFullVersion, apzHomeList, zUsageTitle,
+ zExplain, zDetail, optDesc,
+ zBugsAddr, /* address to send bugs to */
+ NULL, NULL, /* extensions/saved state */
+ optionUsage, /* usage procedure */
+ translate_option_strings, /* translation procedure */
+ /*
+ * Indexes to special options
+ */
+ { INDEX_OPT_MORE_HELP, /* more-help option index */
+ NO_EQUIVALENT, /* save option index */
+ NO_EQUIVALENT, /* '-#' option index */
+ NO_EQUIVALENT /* index of default opt */
+ },
+ 38 /* full option count */, 35 /* user option count */,
+ gnutls_cli_full_usage, gnutls_cli_short_usage,
+ NULL, NULL,
+ PKGDATADIR, gnutls_cli_packager_info
+};
+
+#if ENABLE_NLS
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <autoopts/usage-txt.h>
+
+static char* AO_gettext(char const* pz);
+static void coerce_it(void** s);
+
+/**
+ * AutoGen specific wrapper function for gettext.
+ * It relies on the macro _() to convert from English to the target
+ * language, then strdup-duplicates the result string.
+ *
+ * @param[in] pz the input text used as a lookup key.
+ * @returns the translated text (if there is one),
+ * or the original text (if not).
+ */
+static char *
+AO_gettext(char const* pz)
+{
+ char* pzRes;
+ if (pz == NULL)
+ return NULL;
+ pzRes = _(pz);
+ if (pzRes == pz)
+ return pzRes;
+ pzRes = strdup(pzRes);
+ if (pzRes == NULL) {
+ fputs(_("No memory for duping translated strings\n"), stderr);
+ exit(GNUTLS_CLI_EXIT_FAILURE);
+ }
+ return pzRes;
+}
+
+static void coerce_it(void** s) { *s = AO_gettext(*s);
+}
+
+/**
+ * Translate all the translatable strings in the gnutls_cliOptions
+ * structure defined above. This is done only once.
+ */
+static void
+translate_option_strings(void)
+{
+ tOptions * const pOpt = &gnutls_cliOptions;
+
+ /*
+ * Guard against re-translation. It won't work. The strings will have
+ * been changed by the first pass through this code. One shot only.
+ */
+ if (option_usage_text.field_ct != 0) {
+ /*
+ * Do the translations. The first pointer follows the field count
+ * field. The field count field is the size of a pointer.
+ */
+ tOptDesc * pOD = pOpt->pOptDesc;
+ char ** ppz = (char**)(void*)&(option_usage_text);
+ int ix = option_usage_text.field_ct;
+
+ do {
+ ppz++;
+ *ppz = AO_gettext(*ppz);
+ } while (--ix > 0);
+
+ coerce_it((void*)&(pOpt->pzCopyright));
+ coerce_it((void*)&(pOpt->pzCopyNotice));
+ coerce_it((void*)&(pOpt->pzFullVersion));
+ coerce_it((void*)&(pOpt->pzUsageTitle));
+ coerce_it((void*)&(pOpt->pzExplain));
+ coerce_it((void*)&(pOpt->pzDetail));
+ coerce_it((void*)&(pOpt->pzPackager));
+ coerce_it((void*)&(pOpt->pzShortUsage));
+ option_usage_text.field_ct = 0;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
+ coerce_it((void*)&(pOD->pzText));
+ }
+
+ if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
+ tOptDesc * pOD = pOpt->pOptDesc;
+ int ix;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
+ coerce_it((void*)&(pOD->pz_Name));
+ coerce_it((void*)&(pOD->pz_DisableName));
+ coerce_it((void*)&(pOD->pz_DisablePfx));
+ }
+ /* prevent re-translation */
+ gnutls_cliOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
+ }
+}
+
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+/* cli-args.c ends here */
diff --git a/src/cli-args.h b/src/cli-args.h
new file mode 100644
index 0000000..28240f6
--- /dev/null
+++ b/src/cli-args.h
@@ -0,0 +1,255 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (cli-args.h)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:27 PM by AutoGen 5.16
+ * From the definitions cli-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This header file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the gnutls-cli author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The gnutls-cli program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * gnutls-cli is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * gnutls-cli is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * This file contains the programmatic interface to the Automated
+ * Options generated for the gnutls-cli program.
+ * These macros are documented in the AutoGen info file in the
+ * "AutoOpts" chapter. Please refer to that doc for usage help.
+ */
+#ifndef AUTOOPTS_CLI_ARGS_H_GUARD
+#define AUTOOPTS_CLI_ARGS_H_GUARD 1
+#include "config.h"
+#include <autoopts/options.h>
+
+/*
+ * Ensure that the library used for compiling this generated header is at
+ * least as new as the version current when the header template was released
+ * (not counting patch version increments). Also ensure that the oldest
+ * tolerable version is at least as old as what was current when the header
+ * template was released.
+ */
+#define AO_TEMPLATE_VERSION 147460
+#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
+ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
+# error option template version mismatches autoopts/options.h header
+ Choke Me.
+#endif
+
+/*
+ * Enumeration of each option:
+ */
+typedef enum {
+ INDEX_OPT_DEBUG = 0,
+ INDEX_OPT_VERBOSE = 1,
+ INDEX_OPT_TOFU = 2,
+ INDEX_OPT_OCSP = 3,
+ INDEX_OPT_RESUME = 4,
+ INDEX_OPT_REHANDSHAKE = 5,
+ INDEX_OPT_NOTICKET = 6,
+ INDEX_OPT_STARTTLS = 7,
+ INDEX_OPT_UDP = 8,
+ INDEX_OPT_MTU = 9,
+ INDEX_OPT_CRLF = 10,
+ INDEX_OPT_X509FMTDER = 11,
+ INDEX_OPT_FINGERPRINT = 12,
+ INDEX_OPT_DISABLE_EXTENSIONS = 13,
+ INDEX_OPT_PRINT_CERT = 14,
+ INDEX_OPT_RECORDSIZE = 15,
+ INDEX_OPT_PRIORITY = 16,
+ INDEX_OPT_X509CAFILE = 17,
+ INDEX_OPT_X509CRLFILE = 18,
+ INDEX_OPT_PGPKEYFILE = 19,
+ INDEX_OPT_PGPKEYRING = 20,
+ INDEX_OPT_PGPCERTFILE = 21,
+ INDEX_OPT_X509KEYFILE = 22,
+ INDEX_OPT_X509CERTFILE = 23,
+ INDEX_OPT_PGPSUBKEY = 24,
+ INDEX_OPT_SRPUSERNAME = 25,
+ INDEX_OPT_SRPPASSWD = 26,
+ INDEX_OPT_PSKUSERNAME = 27,
+ INDEX_OPT_PSKKEY = 28,
+ INDEX_OPT_PORT = 29,
+ INDEX_OPT_INSECURE = 30,
+ INDEX_OPT_BENCHMARK_CIPHERS = 31,
+ INDEX_OPT_BENCHMARK_SOFT_CIPHERS = 32,
+ INDEX_OPT_BENCHMARK_TLS = 33,
+ INDEX_OPT_LIST = 34,
+ INDEX_OPT_VERSION = 35,
+ INDEX_OPT_HELP = 36,
+ INDEX_OPT_MORE_HELP = 37
+} teOptIndex;
+
+#define OPTION_CT 38
+#define GNUTLS_CLI_VERSION "@VERSION@"
+#define GNUTLS_CLI_FULL_VERSION "gnutls-cli @VERSION@"
+
+/*
+ * Interface defines for all options. Replace "n" with the UPPER_CASED
+ * option name (as in the teOptIndex enumeration above).
+ * e.g. HAVE_OPT(DEBUG)
+ */
+#define DESC(n) (gnutls_cliOptions.pOptDesc[INDEX_OPT_## n])
+#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+#define OPT_ARG(n) (DESC(n).optArg.argString)
+#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+#define COUNT_OPT(n) (DESC(n).optOccCt)
+#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+#define CLEAR_OPT(n) STMTS( \
+ DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
+ if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
+ DESC(n).fOptState |= OPTST_DISABLED; \
+ DESC(n).optCookie = NULL )
+
+/* * * * * *
+ *
+ * Enumeration of gnutls-cli exit codes
+ */
+typedef enum {
+ GNUTLS_CLI_EXIT_SUCCESS = 0,
+ GNUTLS_CLI_EXIT_FAILURE = 1,
+ GNUTLS_CLI_EXIT_LIBOPTS_FAILURE = 70
+} gnutls_cli_exit_code_t;
+/* * * * * *
+ *
+ * Interface defines for specific options.
+ */
+#define VALUE_OPT_DEBUG 'd'
+
+#define OPT_VALUE_DEBUG (DESC(DEBUG).optArg.argInt)
+#define VALUE_OPT_VERBOSE 'V'
+#define VALUE_OPT_TOFU 2
+#define VALUE_OPT_OCSP 3
+#define VALUE_OPT_RESUME 'r'
+#define VALUE_OPT_REHANDSHAKE 'e'
+#define VALUE_OPT_NOTICKET 6
+#define VALUE_OPT_STARTTLS 's'
+#define VALUE_OPT_UDP 'u'
+#define VALUE_OPT_MTU 9
+
+#define OPT_VALUE_MTU (DESC(MTU).optArg.argInt)
+#define VALUE_OPT_CRLF 10
+#define VALUE_OPT_X509FMTDER 11
+#define VALUE_OPT_FINGERPRINT 'f'
+#define VALUE_OPT_DISABLE_EXTENSIONS 13
+#define VALUE_OPT_PRINT_CERT 14
+#define VALUE_OPT_RECORDSIZE 15
+
+#define OPT_VALUE_RECORDSIZE (DESC(RECORDSIZE).optArg.argInt)
+#define VALUE_OPT_PRIORITY 16
+#define VALUE_OPT_X509CAFILE 17
+#define VALUE_OPT_X509CRLFILE 18
+#define VALUE_OPT_PGPKEYFILE 19
+#define VALUE_OPT_PGPKEYRING 20
+#define VALUE_OPT_PGPCERTFILE 21
+#define VALUE_OPT_X509KEYFILE 22
+#define VALUE_OPT_X509CERTFILE 23
+#define VALUE_OPT_PGPSUBKEY 24
+#define VALUE_OPT_SRPUSERNAME 25
+#define VALUE_OPT_SRPPASSWD 26
+#define VALUE_OPT_PSKUSERNAME 27
+#define VALUE_OPT_PSKKEY 28
+#define VALUE_OPT_PORT 'p'
+#define VALUE_OPT_INSECURE 30
+#define VALUE_OPT_BENCHMARK_CIPHERS 31
+#define VALUE_OPT_BENCHMARK_SOFT_CIPHERS 32
+#define VALUE_OPT_BENCHMARK_TLS 129
+#define VALUE_OPT_LIST 'l'
+#define VALUE_OPT_HELP 'h'
+#define VALUE_OPT_MORE_HELP '!'
+#define VALUE_OPT_VERSION 'v'
+/*
+ * Interface defines not associated with particular options
+ */
+#define ERRSKIP_OPTERR STMTS(gnutls_cliOptions.fOptSet &= ~OPTPROC_ERRSTOP)
+#define ERRSTOP_OPTERR STMTS(gnutls_cliOptions.fOptSet |= OPTPROC_ERRSTOP)
+#define RESTART_OPT(n) STMTS( \
+ gnutls_cliOptions.curOptIdx = (n); \
+ gnutls_cliOptions.pzCurOpt = NULL)
+#define START_OPT RESTART_OPT(1)
+#define USAGE(c) (*gnutls_cliOptions.pUsageProc)(&gnutls_cliOptions, c)
+/* extracted from opthead.tlib near line 484 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * global exported definitions
+ */
+#include <gettext.h>
+
+
+/* * * * * *
+ *
+ * Declare the gnutls-cli option descriptor.
+ */
+extern tOptions gnutls_cliOptions;
+
+#if defined(ENABLE_NLS)
+# ifndef _
+# include <stdio.h>
+static inline char* aoGetsText(char const* pz) {
+ if (pz == NULL) return NULL;
+ return (char*)gettext(pz);
+}
+# define _(s) aoGetsText(s)
+# endif /* _() */
+
+# define OPT_NO_XLAT_CFG_NAMES STMTS(gnutls_cliOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT_CFG;)
+# define OPT_NO_XLAT_OPT_NAMES STMTS(gnutls_cliOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
+
+# define OPT_XLAT_CFG_NAMES STMTS(gnutls_cliOptions.fOptSet &= \
+ ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
+# define OPT_XLAT_OPT_NAMES STMTS(gnutls_cliOptions.fOptSet &= \
+ ~OPTPROC_NXLAT_OPT;)
+
+#else /* ENABLE_NLS */
+# define OPT_NO_XLAT_CFG_NAMES
+# define OPT_NO_XLAT_OPT_NAMES
+
+# define OPT_XLAT_CFG_NAMES
+# define OPT_XLAT_OPT_NAMES
+
+# ifndef _
+# define _(_s) _s
+# endif
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AUTOOPTS_CLI_ARGS_H_GUARD */
+/* cli-args.h ends here */
diff --git a/src/libopts/genshell.c b/src/cli-debug-args.c
similarity index 50%
copy from src/libopts/genshell.c
copy to src/cli-debug-args.c
index 16ca245..dbee341 100644
--- a/src/libopts/genshell.c
+++ b/src/cli-debug-args.c
@@ -1,36 +1,36 @@
/* -*- buffer-read-only: t -*- vi: set ro:
*
- * DO NOT EDIT THIS FILE (genshell.c)
+ * DO NOT EDIT THIS FILE (cli-debug-args.c)
*
- * It has been AutoGen-ed May 6, 2012 at 04:20:59 PM by AutoGen 5.16pre36
- * From the definitions genshell.def
+ * It has been AutoGen-ed May 9, 2012 at 08:05:27 PM by AutoGen 5.16
+ * From the definitions cli-debug-args.def
* and the template file options
*
* Generated from AutoOpts 36:4:11 templates.
*
* AutoOpts is a copyrighted work. This source file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
- * by the genshellopt author or copyright holder. AutoOpts is
+ * by the gnutls-cli-debug author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
- * The genshellopt program is copyrighted and licensed
+ * The gnutls-cli-debug program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1999-2012 Bruce Korb, all rights reserved.
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the
* GNU General Public License, version 3 or later
* <http://gnu.org/licenses/gpl.html>
*
- * genshellopt is free software: you can redistribute it and/or modify it
+ * gnutls-cli-debug is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
- * genshellopt is distributed in the hope that it will be useful, but
+ * gnutls-cli-debug is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
@@ -41,12 +41,13 @@
#ifndef __doxygen__
#define OPTION_CODE_COMPILE 1
-#include "genshell.h"
+#include "cli-debug-args.h"
#include <sys/types.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
+#include <errno.h>
#ifdef __cplusplus
extern "C" {
@@ -55,90 +56,99 @@ extern FILE * option_usage_fp;
/* TRANSLATORS: choose the translation for option names wisely because you
cannot ever change your mind. */
-#define zCopyright (genshellopt_opt_strs+0)
-#define zLicenseDescrip (genshellopt_opt_strs+260)
+#define zCopyright (gnutls_cli_debug_opt_strs+0)
+#define zLicenseDescrip (gnutls_cli_debug_opt_strs+287)
-extern tUsageProc genshelloptUsage;
#ifndef NULL
# define NULL 0
#endif
/*
- * genshellopt option static const strings
+ * gnutls-cli-debug option static const strings
*/
-static char const genshellopt_opt_strs[1690] =
-/* 0 */ "genshellopt 1\n"
- "Copyright (C) 1999-2012 Bruce Korb, all rights reserved.\n"
+static char const gnutls_cli_debug_opt_strs[1841] =
+/* 0 */ "gnutls-cli-debug @address@hidden"
+ "Copyright (C) 2000-2012 Free Software Foundation, all rights
reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the\n"
"GNU General Public License, version 3 or later\n"
" <http://gnu.org/licenses/gpl.html>\n\0"
-/* 260 */ "genshellopt is free software: you can redistribute it and/or
modify it\n"
+/* 287 */ "gnutls-cli-debug is free software: you can redistribute it and/or
modify it\n"
"under the terms of the GNU General Public License as published by
the Free\n"
"Software Foundation, either version 3 of the License, or (at your
option)\n"
"any later version.\n\n"
- "genshellopt is distributed in the hope that it will be useful,
but WITHOUT\n"
- "ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or\n"
- "FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for\n"
- "more details.\n\n"
+ "gnutls-cli-debug is distributed in the hope that it will be
useful, but\n"
+ "WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY\n"
+ "or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License\n"
+ "for more details.\n\n"
"You should have received a copy of the GNU General Public License
along\n"
"with this program. If not, see
<http://www.gnu.org/licenses/>.\n\0"
-/* 871 */ "Output Script File\0"
-/* 890 */ "SCRIPT\0"
-/* 897 */ "script\0"
-/* 904 */ "Shell name (follows \"#!\" magic)\0"
-/* 936 */ "SHELL\0"
-/* 942 */ "no-shell\0"
-/* 951 */ "no\0"
-/* 954 */ "Display extended usage information and exit\0"
-/* 998 */ "help\0"
-/* 1003 */ "Extended usage information passed thru pager\0"
-/* 1048 */ "more-help\0"
-/* 1058 */ "Output version information and exit\0"
-/* 1094 */ "version\0"
-/* 1102 */ "GENSHELLOPT\0"
-/* 1114 */ "genshellopt - Generate Shell Option Processing Script - Ver. 1\n"
- "USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
-/* 1235 */ "address@hidden"
-/* 1271 */ "\n"
- "Note that ``shell'' is only useful if the output file does not
already\n"
- "exist. If it does, then the shell name and optional first
argument will be\n"
- "extracted from the script file.\n\0"
-/* 1452 */ "\n"
- "If the script file already exists and contains Automated Option
Processing\n"
- "text, the second line of the file through the ending tag will be
replaced\n"
- "by the newly generated text. The first ``#!'' line will be
regenerated.\n\0"
-/* 1676 */ "genshellopt 1";
+/* 908 */ "Enable debugging.\0"
+/* 926 */ "DEBUG\0"
+/* 932 */ "debug\0"
+/* 938 */ "More verbose output\0"
+/* 958 */ "VERBOSE\0"
+/* 966 */ "verbose\0"
+/* 974 */ "The port to connect to\0"
+/* 997 */ "PORT\0"
+/* 1002 */ "port\0"
+/* 1007 */ "Display extended usage information and exit\0"
+/* 1051 */ "help\0"
+/* 1056 */ "Extended usage information passed thru pager\0"
+/* 1101 */ "more-help\0"
+/* 1111 */ "Output version information and exit\0"
+/* 1147 */ "version\0"
+/* 1155 */ "GNUTLS_CLI_DEBUG\0"
+/* 1172 */ "gnutls-cli-debug - GnuTLS debug client - Ver. @address@hidden"
+ "USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \n\0"
+/* 1287 */ "address@hidden"
+/* 1306 */ "\n\n\0"
+/* 1309 */ "\n"
+ "TLS debug client. It sets up multiple TLS connections to a
server and\n"
+ "queries its capabilities. It was created to assist in debugging
GnuTLS,\n"
+ "but it might be useful to extract a TLS server's capabilities.
It connects\n"
+ "to a TLS server, performs tests and print the server's
capabilities. If\n"
+ "called with the `-v' parameter more checks will be performed.
Can be used\n"
+ "to check for servers with special needs or bugs.\n\0"
+/* 1728 */ "gnutls-cli-debug @address@hidden"
+/* 1755 */ "Usage: gnutls-cli-debug [options] hostname\n"
+ "gnutls-cli --help for usage instructions.\n";
/*
- * script option description:
+ * debug option description:
*/
-#define SCRIPT_DESC (genshellopt_opt_strs+871)
-#define SCRIPT_NAME (genshellopt_opt_strs+890)
-#define SCRIPT_name (genshellopt_opt_strs+897)
-#define SCRIPT_FLAGS (OPTST_DISABLED \
- | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+#define DEBUG_DESC (gnutls_cli_debug_opt_strs+908)
+#define DEBUG_NAME (gnutls_cli_debug_opt_strs+926)
+#define DEBUG_name (gnutls_cli_debug_opt_strs+932)
+#define DEBUG_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/*
- * shell option description:
+ * verbose option description:
*/
-#define SHELL_DESC (genshellopt_opt_strs+904)
-#define SHELL_NAME (genshellopt_opt_strs+936)
-#define NOT_SHELL_name (genshellopt_opt_strs+942)
-#define NOT_SHELL_PFX (genshellopt_opt_strs+951)
-#define SHELL_name (NOT_SHELL_name + 3)
-#define SHELL_FLAGS (OPTST_INITENABLED \
- | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+#define VERBOSE_DESC (gnutls_cli_debug_opt_strs+938)
+#define VERBOSE_NAME (gnutls_cli_debug_opt_strs+958)
+#define VERBOSE_name (gnutls_cli_debug_opt_strs+966)
+#define VERBOSE_FLAGS (OPTST_DISABLED)
+
+/*
+ * port option description:
+ */
+#define PORT_DESC (gnutls_cli_debug_opt_strs+974)
+#define PORT_NAME (gnutls_cli_debug_opt_strs+997)
+#define PORT_name (gnutls_cli_debug_opt_strs+1002)
+#define PORT_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/*
* Help/More_Help/Version option descriptions:
*/
-#define HELP_DESC (genshellopt_opt_strs+954)
-#define HELP_name (genshellopt_opt_strs+998)
+#define HELP_DESC (gnutls_cli_debug_opt_strs+1007)
+#define HELP_name (gnutls_cli_debug_opt_strs+1051)
#ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC (genshellopt_opt_strs+1003)
-#define MORE_HELP_name (genshellopt_opt_strs+1048)
+#define MORE_HELP_DESC (gnutls_cli_debug_opt_strs+1056)
+#define MORE_HELP_name (gnutls_cli_debug_opt_strs+1101)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC NULL
@@ -151,8 +161,8 @@ static char const genshellopt_opt_strs[1690] =
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
-#define VER_DESC (genshellopt_opt_strs+1058)
-#define VER_name (genshellopt_opt_strs+1094)
+#define VER_DESC (gnutls_cli_debug_opt_strs+1111)
+#define VER_name (gnutls_cli_debug_opt_strs+1147)
/*
* Declare option callback procedures
*/
@@ -162,42 +172,54 @@ extern tOptProc
optionStackArg, optionTimeDate, optionTimeVal,
optionUnstackArg, optionVendorOption;
static tOptProc
- doUsageOpt;
+ doOptDebug, doOptPort, doUsageOpt;
#define VER_PROC optionPrintVersion
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
- * Define the genshellopt Option Descriptions.
- * This is an array of GENSHELL_OPTION_CT entries, one for each
- * option that the genshellopt program responds to.
+ * Define the gnutls-cli-debug Option Descriptions.
+ * This is an array of OPTION_CT entries, one for each
+ * option that the gnutls-cli-debug program responds to.
*/
-static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
- { /* entry idx, value */ 0, VALUE_GENSHELL_OPT_SCRIPT,
- /* equiv idx, value */ 0, VALUE_GENSHELL_OPT_SCRIPT,
+static tOptDesc optDesc[OPTION_CT] = {
+ { /* entry idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equiv idx, value */ 0, VALUE_OPT_DEBUG,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
- /* opt state flags */ SCRIPT_FLAGS, 0,
- /* last opt argumnt */ { NULL }, /* --script */
+ /* opt state flags */ DEBUG_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --debug */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptDebug,
+ /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 1, VALUE_OPT_VERBOSE,
+ /* equiv idx, value */ 1, VALUE_OPT_VERBOSE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, NOLIMIT, 0,
+ /* opt state flags */ VERBOSE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --verbose */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
- /* desc, NAME, name */ SCRIPT_DESC, SCRIPT_NAME, SCRIPT_name,
+ /* desc, NAME, name */ VERBOSE_DESC, VERBOSE_NAME, VERBOSE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 1, VALUE_GENSHELL_OPT_SHELL,
- /* equiv idx, value */ 1, VALUE_GENSHELL_OPT_SHELL,
+ { /* entry idx, value */ 2, VALUE_OPT_PORT,
+ /* equiv idx, value */ 2, VALUE_OPT_PORT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
- /* opt state flags */ SHELL_FLAGS, 0,
- /* last opt argumnt */ { NULL }, /* --shell */
+ /* opt state flags */ PORT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --port */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
- /* option proc */ NULL,
- /* desc, NAME, name */ SHELL_DESC, SHELL_NAME, SHELL_name,
- /* disablement strs */ NOT_SHELL_name, NOT_SHELL_PFX },
+ /* option proc */ doOptPort,
+ /* desc, NAME, name */ PORT_DESC, PORT_NAME, PORT_name,
+ /* disablement strs */ NULL, NULL },
- { /* entry idx, value */ INDEX_GENSHELL_OPT_VERSION,
VALUE_GENSHELL_OPT_VERSION,
- /* equiv idx value */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_VERSION,
+ { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ VER_FLAGS, 0,
@@ -210,8 +232,8 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
- { /* entry idx, value */ INDEX_GENSHELL_OPT_HELP, VALUE_GENSHELL_OPT_HELP,
- /* equiv idx value */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_HELP,
+ { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0,
@@ -222,8 +244,8 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
/* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ INDEX_GENSHELL_OPT_MORE_HELP,
VALUE_GENSHELL_OPT_MORE_HELP,
- /* equiv idx value */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_MORE_HELP,
+ { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MORE_HELP_FLAGS, 0,
@@ -238,20 +260,20 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
- * Define the genshellopt Option Environment
+ * Define the gnutls-cli-debug Option Environment
*/
-#define zPROGNAME (genshellopt_opt_strs+1102)
-#define zUsageTitle (genshellopt_opt_strs+1114)
+#define zPROGNAME (gnutls_cli_debug_opt_strs+1155)
+#define zUsageTitle (gnutls_cli_debug_opt_strs+1172)
#define zRcName NULL
#define apzHomeList NULL
-#define zBugsAddr (genshellopt_opt_strs+1235)
-#define zExplain (genshellopt_opt_strs+1271)
-#define zDetail (genshellopt_opt_strs+1452)
-#define zFullVersion (genshellopt_opt_strs+1676)
+#define zBugsAddr (gnutls_cli_debug_opt_strs+1287)
+#define zExplain (gnutls_cli_debug_opt_strs+1306)
+#define zDetail (gnutls_cli_debug_opt_strs+1309)
+#define zFullVersion (gnutls_cli_debug_opt_strs+1728)
/* extracted from optcode.tlib near line 350 */
#if defined(ENABLE_NLS)
-# define OPTPROC_BASE OPTPROC_TRANSLATE
+# define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
static tOptionXlateProc translate_option_strings;
#else
# define OPTPROC_BASE OPTPROC_NONE
@@ -259,9 +281,9 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
#endif /* ENABLE_NLS */
-#define genshellopt_full_usage (NULL)
+#define gnutls_cli_debug_full_usage (NULL)
-#define genshellopt_short_usage (NULL)
+#define gnutls_cli_debug_short_usage (gnutls_cli_debug_opt_strs+1755)
#endif /* not defined __doxygen__ */
@@ -269,7 +291,7 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
* Create the static procedure(s) declared above.
*/
/**
- * The callout function that invokes the genshelloptUsage function.
+ * The callout function that invokes the optionUsage function.
*
* @param pOptions the AutoOpts option description structure
* @param pOptDesc the descriptor for the "help" (usage) option.
@@ -278,28 +300,100 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
static void
doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
{
- genshelloptUsage(&genshelloptOptions, GENSHELLOPT_EXIT_SUCCESS);
+ optionUsage(&gnutls_cli_debugOptions, GNUTLS_CLI_DEBUG_EXIT_SUCCESS);
/* NOTREACHED */
(void)pOptDesc;
(void)pOptions;
}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the debug option.
+ *
+ * @param pOptions the gnutls-cli-debug options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0 , 9999 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the port option.
+ *
+ * @param pOptions the gnutls-cli-debug options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptPort(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0 , 65536 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
/* extracted from optmain.tlib near line 1113 */
/**
- * The directory containing the data associated with genshellopt.
+ * The directory containing the data associated with gnutls-cli-debug.
*/
#ifndef PKGDATADIR
# define PKGDATADIR ""
#endif
/**
- * Information about the person or institution that packaged genshellopt
+ * Information about the person or institution that packaged gnutls-cli-debug
* for the current distribution.
*/
#ifndef WITH_PACKAGER
-# define genshellopt_packager_info NULL
+# define gnutls_cli_debug_packager_info NULL
#else
-static char const genshellopt_packager_info[] =
+static char const gnutls_cli_debug_packager_info[] =
"Packaged by " WITH_PACKAGER
# ifdef WITH_PACKAGER_VERSION
@@ -307,7 +401,7 @@ static char const genshellopt_packager_info[] =
# endif
# ifdef WITH_PACKAGER_BUG_REPORTS
- "\nReport genshellopt bugs to " WITH_PACKAGER_BUG_REPORTS
+ "\nReport gnutls_cli_debug bugs to " WITH_PACKAGER_BUG_REPORTS
# endif
"\n";
#endif
@@ -315,10 +409,10 @@ static char const genshellopt_packager_info[] =
#endif /* __doxygen__ */
/**
- * The option definitions for genshellopt. The one structure that
+ * The option definitions for gnutls-cli-debug. The one structure that
* binds them all.
*/
-tOptions genshelloptOptions = {
+tOptions gnutls_cli_debugOptions = {
OPTIONS_STRUCT_VERSION,
0, NULL, /* original argc + argv */
( OPTPROC_BASE
@@ -326,8 +420,10 @@ tOptions genshelloptOptions = {
+ OPTPROC_SHORTOPT
+ OPTPROC_LONGOPT
+ OPTPROC_NO_REQ_OPT
- + OPTPROC_NEGATIONS
- + OPTPROC_NO_ARGS ),
+ + OPTPROC_ARGS_REQ
+ + OPTPROC_REORDER
+ + OPTPROC_GNUUSAGE
+ + OPTPROC_MISUSE ),
0, NULL, /* current option index, current option */
NULL, NULL, zPROGNAME,
zRcName, zCopyright, zLicenseDescrip,
@@ -335,20 +431,20 @@ tOptions genshelloptOptions = {
zExplain, zDetail, optDesc,
zBugsAddr, /* address to send bugs to */
NULL, NULL, /* extensions/saved state */
- genshelloptUsage, /* usage procedure */
+ optionUsage, /* usage procedure */
translate_option_strings, /* translation procedure */
/*
* Indexes to special options
*/
- { INDEX_GENSHELL_OPT_MORE_HELP, /* more-help option index */
+ { INDEX_OPT_MORE_HELP, /* more-help option index */
NO_EQUIVALENT, /* save option index */
NO_EQUIVALENT, /* '-#' option index */
NO_EQUIVALENT /* index of default opt */
},
- 5 /* full option count */, 2 /* user option count */,
- genshellopt_full_usage, genshellopt_short_usage,
+ 6 /* full option count */, 3 /* user option count */,
+ gnutls_cli_debug_full_usage, gnutls_cli_debug_short_usage,
NULL, NULL,
- PKGDATADIR, genshellopt_packager_info
+ PKGDATADIR, gnutls_cli_debug_packager_info
};
#if ENABLE_NLS
@@ -382,7 +478,7 @@ AO_gettext(char const* pz)
pzRes = strdup(pzRes);
if (pzRes == NULL) {
fputs(_("No memory for duping translated strings\n"), stderr);
- exit(GENSHELLOPT_EXIT_FAILURE);
+ exit(GNUTLS_CLI_DEBUG_EXIT_FAILURE);
}
return pzRes;
}
@@ -391,13 +487,13 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
}
/**
- * Translate all the translatable strings in the genshelloptOptions
+ * Translate all the translatable strings in the gnutls_cli_debugOptions
* structure defined above. This is done only once.
*/
static void
translate_option_strings(void)
{
- tOptions * const pOpt = &genshelloptOptions;
+ tOptions * const pOpt = &gnutls_cli_debugOptions;
/*
* Guard against re-translation. It won't work. The strings will have
@@ -424,6 +520,7 @@ translate_option_strings(void)
coerce_it((void*)&(pOpt->pzExplain));
coerce_it((void*)&(pOpt->pzDetail));
coerce_it((void*)&(pOpt->pzPackager));
+ coerce_it((void*)&(pOpt->pzShortUsage));
option_usage_text.field_ct = 0;
for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
@@ -440,7 +537,7 @@ translate_option_strings(void)
coerce_it((void*)&(pOD->pz_DisablePfx));
}
/* prevent re-translation */
- genshelloptOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG |
OPTPROC_NXLAT_OPT;
+ gnutls_cli_debugOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG |
OPTPROC_NXLAT_OPT;
}
}
@@ -449,4 +546,4 @@ translate_option_strings(void)
#ifdef __cplusplus
}
#endif
-/* genshell.c ends here */
+/* cli-debug-args.c ends here */
diff --git a/src/cli-debug-args.h b/src/cli-debug-args.h
new file mode 100644
index 0000000..cc03fb5
--- /dev/null
+++ b/src/cli-debug-args.h
@@ -0,0 +1,189 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (cli-debug-args.h)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:27 PM by AutoGen 5.16
+ * From the definitions cli-debug-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This header file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the gnutls-cli-debug author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The gnutls-cli-debug program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * gnutls-cli-debug is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * gnutls-cli-debug is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * This file contains the programmatic interface to the Automated
+ * Options generated for the gnutls-cli-debug program.
+ * These macros are documented in the AutoGen info file in the
+ * "AutoOpts" chapter. Please refer to that doc for usage help.
+ */
+#ifndef AUTOOPTS_CLI_DEBUG_ARGS_H_GUARD
+#define AUTOOPTS_CLI_DEBUG_ARGS_H_GUARD 1
+#include "config.h"
+#include <autoopts/options.h>
+
+/*
+ * Ensure that the library used for compiling this generated header is at
+ * least as new as the version current when the header template was released
+ * (not counting patch version increments). Also ensure that the oldest
+ * tolerable version is at least as old as what was current when the header
+ * template was released.
+ */
+#define AO_TEMPLATE_VERSION 147460
+#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
+ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
+# error option template version mismatches autoopts/options.h header
+ Choke Me.
+#endif
+
+/*
+ * Enumeration of each option:
+ */
+typedef enum {
+ INDEX_OPT_DEBUG = 0,
+ INDEX_OPT_VERBOSE = 1,
+ INDEX_OPT_PORT = 2,
+ INDEX_OPT_VERSION = 3,
+ INDEX_OPT_HELP = 4,
+ INDEX_OPT_MORE_HELP = 5
+} teOptIndex;
+
+#define OPTION_CT 6
+#define GNUTLS_CLI_DEBUG_VERSION "@VERSION@"
+#define GNUTLS_CLI_DEBUG_FULL_VERSION "gnutls-cli-debug @VERSION@"
+
+/*
+ * Interface defines for all options. Replace "n" with the UPPER_CASED
+ * option name (as in the teOptIndex enumeration above).
+ * e.g. HAVE_OPT(DEBUG)
+ */
+#define DESC(n) (gnutls_cli_debugOptions.pOptDesc[INDEX_OPT_## n])
+#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+#define OPT_ARG(n) (DESC(n).optArg.argString)
+#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+#define COUNT_OPT(n) (DESC(n).optOccCt)
+#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+#define CLEAR_OPT(n) STMTS( \
+ DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
+ if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
+ DESC(n).fOptState |= OPTST_DISABLED; \
+ DESC(n).optCookie = NULL )
+
+/* * * * * *
+ *
+ * Enumeration of gnutls-cli-debug exit codes
+ */
+typedef enum {
+ GNUTLS_CLI_DEBUG_EXIT_SUCCESS = 0,
+ GNUTLS_CLI_DEBUG_EXIT_FAILURE = 1,
+ GNUTLS_CLI_DEBUG_EXIT_LIBOPTS_FAILURE = 70
+} gnutls_cli_debug_exit_code_t;
+/* * * * * *
+ *
+ * Interface defines for specific options.
+ */
+#define VALUE_OPT_DEBUG 'd'
+
+#define OPT_VALUE_DEBUG (DESC(DEBUG).optArg.argInt)
+#define VALUE_OPT_VERBOSE 'V'
+#define VALUE_OPT_PORT 'p'
+
+#define OPT_VALUE_PORT (DESC(PORT).optArg.argInt)
+#define VALUE_OPT_HELP 'h'
+#define VALUE_OPT_MORE_HELP '!'
+#define VALUE_OPT_VERSION 'v'
+/*
+ * Interface defines not associated with particular options
+ */
+#define ERRSKIP_OPTERR STMTS(gnutls_cli_debugOptions.fOptSet &=
~OPTPROC_ERRSTOP)
+#define ERRSTOP_OPTERR STMTS(gnutls_cli_debugOptions.fOptSet |=
OPTPROC_ERRSTOP)
+#define RESTART_OPT(n) STMTS( \
+ gnutls_cli_debugOptions.curOptIdx = (n); \
+ gnutls_cli_debugOptions.pzCurOpt = NULL)
+#define START_OPT RESTART_OPT(1)
+#define USAGE(c)
(*gnutls_cli_debugOptions.pUsageProc)(&gnutls_cli_debugOptions, c)
+/* extracted from opthead.tlib near line 484 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * global exported definitions
+ */
+#include <gettext.h>
+
+
+/* * * * * *
+ *
+ * Declare the gnutls-cli-debug option descriptor.
+ */
+extern tOptions gnutls_cli_debugOptions;
+
+#if defined(ENABLE_NLS)
+# ifndef _
+# include <stdio.h>
+static inline char* aoGetsText(char const* pz) {
+ if (pz == NULL) return NULL;
+ return (char*)gettext(pz);
+}
+# define _(s) aoGetsText(s)
+# endif /* _() */
+
+# define OPT_NO_XLAT_CFG_NAMES STMTS(gnutls_cli_debugOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT_CFG;)
+# define OPT_NO_XLAT_OPT_NAMES STMTS(gnutls_cli_debugOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
+
+# define OPT_XLAT_CFG_NAMES STMTS(gnutls_cli_debugOptions.fOptSet &= \
+ ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
+# define OPT_XLAT_OPT_NAMES STMTS(gnutls_cli_debugOptions.fOptSet &= \
+ ~OPTPROC_NXLAT_OPT;)
+
+#else /* ENABLE_NLS */
+# define OPT_NO_XLAT_CFG_NAMES
+# define OPT_NO_XLAT_OPT_NAMES
+
+# define OPT_XLAT_CFG_NAMES
+# define OPT_XLAT_OPT_NAMES
+
+# ifndef _
+# define _(_s) _s
+# endif
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AUTOOPTS_CLI_DEBUG_ARGS_H_GUARD */
+/* cli-debug-args.h ends here */
diff --git a/src/ocsptool-args.c b/src/ocsptool-args.c
new file mode 100644
index 0000000..a2eddbc
--- /dev/null
+++ b/src/ocsptool-args.c
@@ -0,0 +1,1003 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (ocsptool-args.c)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:26 PM by AutoGen 5.16
+ * From the definitions ocsptool-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This source file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the ocsptool author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The ocsptool program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * ocsptool is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * ocsptool is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __doxygen__
+#define OPTION_CODE_COMPILE 1
+#include "ocsptool-args.h"
+#include <sys/types.h>
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern FILE * option_usage_fp;
+
+/* TRANSLATORS: choose the translation for option names wisely because you
+ cannot ever change your mind. */
+#define zCopyright (ocsptool_opt_strs+0)
+#define zLicenseDescrip (ocsptool_opt_strs+279)
+
+
+#ifndef NULL
+# define NULL 0
+#endif
+
+/*
+ * ocsptool option static const strings
+ */
+static char const ocsptool_opt_strs[2273] =
+/* 0 */ "ocsptool @address@hidden"
+ "Copyright (C) 2000-2012 Free Software Foundation, all rights
reserved.\n"
+ "This is free software. It is licensed for use, modification and\n"
+ "redistribution under the terms of the\n"
+ "GNU General Public License, version 3 or later\n"
+ " <http://gnu.org/licenses/gpl.html>\n\0"
+/* 279 */ "ocsptool is free software: you can redistribute it and/or modify
it under\n"
+ "the terms of the GNU General Public License as published by the
Free\n"
+ "Software Foundation, either version 3 of the License, or (at your
option)\n"
+ "any later version.\n\n"
+ "ocsptool is distributed in the hope that it will be useful, but
WITHOUT ANY\n"
+ "WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS\n"
+ "FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more\n"
+ "details.\n\n"
+ "You should have received a copy of the GNU General Public License
along\n"
+ "with this program. If not, see
<http://www.gnu.org/licenses/>.\n\0"
+/* 884 */ "Enable debugging.\0"
+/* 902 */ "DEBUG\0"
+/* 908 */ "debug\0"
+/* 914 */ "More verbose output\0"
+/* 934 */ "VERBOSE\0"
+/* 942 */ "verbose\0"
+/* 950 */ "Input file\0"
+/* 961 */ "INFILE\0"
+/* 968 */ "infile\0"
+/* 975 */ "Output file\0"
+/* 987 */ "OUTFILE\0"
+/* 995 */ "outfile\0"
+/* 1003 */ "Ask an OCSP/HTTP server on a certificate validity\0"
+/* 1053 */ "ASK\0"
+/* 1057 */ "ask\0"
+/* 1061 */ "Verify response\0"
+/* 1077 */ "VERIFY_RESPONSE\0"
+/* 1093 */ "verify-response\0"
+/* 1109 */ "Print information on a OCSP request\0"
+/* 1145 */ "REQUEST_INFO\0"
+/* 1158 */ "request-info\0"
+/* 1171 */ "Print information on a OCSP response\0"
+/* 1208 */ "RESPONSE_INFO\0"
+/* 1222 */ "response-info\0"
+/* 1236 */ "Generate an OCSP request\0"
+/* 1261 */ "GENERATE_REQUEST\0"
+/* 1278 */ "generate-request\0"
+/* 1295 */ "Don't add nonce to OCSP request\0"
+/* 1327 */ "NONCE\0"
+/* 1333 */ "no-nonce\0"
+/* 1342 */ "no\0"
+/* 1345 */ "Read issuer certificate from file\0"
+/* 1379 */ "LOAD_ISSUER\0"
+/* 1391 */ "load-issuer\0"
+/* 1403 */ "Read certificate to check from file\0"
+/* 1439 */ "LOAD_CERT\0"
+/* 1449 */ "load-cert\0"
+/* 1459 */ "Read OCSP trust anchors from file\0"
+/* 1493 */ "LOAD_TRUST\0"
+/* 1504 */ "load-trust\0"
+/* 1515 */ "Read OCSP response signer from file\0"
+/* 1551 */ "LOAD_SIGNER\0"
+/* 1563 */ "load-signer\0"
+/* 1575 */ "Use DER format for input certificates and private keys\0"
+/* 1630 */ "INDER\0"
+/* 1636 */ "no-inder\0"
+/* 1645 */ "Read DER encoded OCSP request from file\0"
+/* 1685 */ "LOAD_REQUEST\0"
+/* 1698 */ "load-request\0"
+/* 1711 */ "Read DER encoded OCSP response from file\0"
+/* 1752 */ "LOAD_RESPONSE\0"
+/* 1766 */ "load-response\0"
+/* 1780 */ "Display extended usage information and exit\0"
+/* 1824 */ "help\0"
+/* 1829 */ "Extended usage information passed thru pager\0"
+/* 1874 */ "more-help\0"
+/* 1884 */ "Output version information and exit\0"
+/* 1920 */ "version\0"
+/* 1928 */ "OCSPTOOL\0"
+/* 1937 */ "ocsptool - GnuTLS OCSP tool - Ver. @address@hidden"
+ "USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
+/* 2040 */ "address@hidden"
+/* 2059 */ "\n\n\0"
+/* 2062 */ "\n"
+ "Ocsptool is a program that can parse and print information about
OCSP\n"
+ "requests/responses, generate requests and verify responses.\n\0"
+/* 2194 */ "ocsptool @address@hidden"
+/* 2213 */ "ocsptool [options]\n"
+ "ocsptool --help for usage instructions.\n";
+
+/*
+ * debug option description:
+ */
+#define DEBUG_DESC (ocsptool_opt_strs+884)
+#define DEBUG_NAME (ocsptool_opt_strs+902)
+#define DEBUG_name (ocsptool_opt_strs+908)
+#define DEBUG_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * verbose option description:
+ */
+#define VERBOSE_DESC (ocsptool_opt_strs+914)
+#define VERBOSE_NAME (ocsptool_opt_strs+934)
+#define VERBOSE_name (ocsptool_opt_strs+942)
+#define VERBOSE_FLAGS (OPTST_DISABLED)
+
+/*
+ * infile option description:
+ */
+#define INFILE_DESC (ocsptool_opt_strs+950)
+#define INFILE_NAME (ocsptool_opt_strs+961)
+#define INFILE_name (ocsptool_opt_strs+968)
+#define INFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * outfile option description:
+ */
+#define OUTFILE_DESC (ocsptool_opt_strs+975)
+#define OUTFILE_NAME (ocsptool_opt_strs+987)
+#define OUTFILE_name (ocsptool_opt_strs+995)
+#define OUTFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * ask option description with
+ * "Must also have options" and "Incompatible options":
+ */
+#define ASK_DESC (ocsptool_opt_strs+1003)
+#define ASK_NAME (ocsptool_opt_strs+1053)
+#define ASK_name (ocsptool_opt_strs+1057)
+static int const aAskMustList[] = {
+ INDEX_OPT_LOAD_CERT,
+ INDEX_OPT_LOAD_ISSUER, NO_EQUIVALENT };
+#define ASK_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | OPTST_ARG_OPTIONAL)
+
+/*
+ * verify-response option description:
+ */
+#define VERIFY_RESPONSE_DESC (ocsptool_opt_strs+1061)
+#define VERIFY_RESPONSE_NAME (ocsptool_opt_strs+1077)
+#define VERIFY_RESPONSE_name (ocsptool_opt_strs+1093)
+#define VERIFY_RESPONSE_FLAGS (OPTST_DISABLED)
+
+/*
+ * request-info option description:
+ */
+#define REQUEST_INFO_DESC (ocsptool_opt_strs+1109)
+#define REQUEST_INFO_NAME (ocsptool_opt_strs+1145)
+#define REQUEST_INFO_name (ocsptool_opt_strs+1158)
+#define REQUEST_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * response-info option description:
+ */
+#define RESPONSE_INFO_DESC (ocsptool_opt_strs+1171)
+#define RESPONSE_INFO_NAME (ocsptool_opt_strs+1208)
+#define RESPONSE_INFO_name (ocsptool_opt_strs+1222)
+#define RESPONSE_INFO_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate-request option description:
+ */
+#define GENERATE_REQUEST_DESC (ocsptool_opt_strs+1236)
+#define GENERATE_REQUEST_NAME (ocsptool_opt_strs+1261)
+#define GENERATE_REQUEST_name (ocsptool_opt_strs+1278)
+#define GENERATE_REQUEST_FLAGS (OPTST_DISABLED)
+
+/*
+ * nonce option description:
+ */
+#define NONCE_DESC (ocsptool_opt_strs+1295)
+#define NONCE_NAME (ocsptool_opt_strs+1327)
+#define NOT_NONCE_name (ocsptool_opt_strs+1333)
+#define NOT_NONCE_PFX (ocsptool_opt_strs+1342)
+#define NONCE_name (NOT_NONCE_name + 3)
+#define NONCE_FLAGS (OPTST_DISABLED)
+
+/*
+ * load-issuer option description:
+ */
+#define LOAD_ISSUER_DESC (ocsptool_opt_strs+1345)
+#define LOAD_ISSUER_NAME (ocsptool_opt_strs+1379)
+#define LOAD_ISSUER_name (ocsptool_opt_strs+1391)
+#define LOAD_ISSUER_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * load-cert option description:
+ */
+#define LOAD_CERT_DESC (ocsptool_opt_strs+1403)
+#define LOAD_CERT_NAME (ocsptool_opt_strs+1439)
+#define LOAD_CERT_name (ocsptool_opt_strs+1449)
+#define LOAD_CERT_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * load-trust option description with
+ * "Must also have options" and "Incompatible options":
+ */
+#define LOAD_TRUST_DESC (ocsptool_opt_strs+1459)
+#define LOAD_TRUST_NAME (ocsptool_opt_strs+1493)
+#define LOAD_TRUST_name (ocsptool_opt_strs+1504)
+static int const aLoad_TrustCantList[] = {
+ INDEX_OPT_LOAD_SIGNER, NO_EQUIVALENT };
+#define LOAD_TRUST_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * load-signer option description with
+ * "Must also have options" and "Incompatible options":
+ */
+#define LOAD_SIGNER_DESC (ocsptool_opt_strs+1515)
+#define LOAD_SIGNER_NAME (ocsptool_opt_strs+1551)
+#define LOAD_SIGNER_name (ocsptool_opt_strs+1563)
+static int const aLoad_SignerCantList[] = {
+ INDEX_OPT_LOAD_TRUST, NO_EQUIVALENT };
+#define LOAD_SIGNER_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * inder option description:
+ */
+#define INDER_DESC (ocsptool_opt_strs+1575)
+#define INDER_NAME (ocsptool_opt_strs+1630)
+#define NOT_INDER_name (ocsptool_opt_strs+1636)
+#define NOT_INDER_PFX (ocsptool_opt_strs+1342)
+#define INDER_name (NOT_INDER_name + 3)
+#define INDER_FLAGS (OPTST_DISABLED)
+
+/*
+ * load-request option description:
+ */
+#define LOAD_REQUEST_DESC (ocsptool_opt_strs+1645)
+#define LOAD_REQUEST_NAME (ocsptool_opt_strs+1685)
+#define LOAD_REQUEST_name (ocsptool_opt_strs+1698)
+#define LOAD_REQUEST_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * load-response option description:
+ */
+#define LOAD_RESPONSE_DESC (ocsptool_opt_strs+1711)
+#define LOAD_RESPONSE_NAME (ocsptool_opt_strs+1752)
+#define LOAD_RESPONSE_name (ocsptool_opt_strs+1766)
+#define LOAD_RESPONSE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * Help/More_Help/Version option descriptions:
+ */
+#define HELP_DESC (ocsptool_opt_strs+1780)
+#define HELP_name (ocsptool_opt_strs+1824)
+#ifdef HAVE_WORKING_FORK
+#define MORE_HELP_DESC (ocsptool_opt_strs+1829)
+#define MORE_HELP_name (ocsptool_opt_strs+1874)
+#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+#define MORE_HELP_DESC NULL
+#define MORE_HELP_name NULL
+#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
+#endif
+#ifdef NO_OPTIONAL_OPT_ARGS
+# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
+ OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
+#endif
+#define VER_DESC (ocsptool_opt_strs+1884)
+#define VER_name (ocsptool_opt_strs+1920)
+/*
+ * Declare option callback procedures
+ */
+extern tOptProc
+ optionBooleanVal, optionNestedVal, optionNumericVal,
+ optionPagedUsage, optionPrintVersion, optionResetOpt,
+ optionStackArg, optionTimeDate, optionTimeVal,
+ optionUnstackArg, optionVendorOption;
+static tOptProc
+ doOptDebug, doOptInfile, doOptLoad_Cert,
+ doOptLoad_Issuer, doOptLoad_Request, doOptLoad_Response,
+ doOptLoad_Signer, doOptLoad_Trust, doUsageOpt;
+#define VER_PROC optionPrintVersion
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Define the ocsptool Option Descriptions.
+ * This is an array of OPTION_CT entries, one for each
+ * option that the ocsptool program responds to.
+ */
+static tOptDesc optDesc[OPTION_CT] = {
+ { /* entry idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equiv idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DEBUG_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --debug */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptDebug,
+ /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 1, VALUE_OPT_VERBOSE,
+ /* equiv idx, value */ 1, VALUE_OPT_VERBOSE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, NOLIMIT, 0,
+ /* opt state flags */ VERBOSE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --verbose */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ VERBOSE_DESC, VERBOSE_NAME, VERBOSE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 2, VALUE_OPT_INFILE,
+ /* equiv idx, value */ 2, VALUE_OPT_INFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ INFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --infile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptInfile,
+ /* desc, NAME, name */ INFILE_DESC, INFILE_NAME, INFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 3, VALUE_OPT_OUTFILE,
+ /* equiv idx, value */ 3, VALUE_OPT_OUTFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OUTFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --outfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ OUTFILE_DESC, OUTFILE_NAME, OUTFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 4, VALUE_OPT_ASK,
+ /* equiv idx, value */ 4, VALUE_OPT_ASK,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ ASK_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --ask */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ aAskMustList, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ ASK_DESC, ASK_NAME, ASK_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 5, VALUE_OPT_VERIFY_RESPONSE,
+ /* equiv idx, value */ 5, VALUE_OPT_VERIFY_RESPONSE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VERIFY_RESPONSE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --verify-response */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ VERIFY_RESPONSE_DESC, VERIFY_RESPONSE_NAME,
VERIFY_RESPONSE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 6, VALUE_OPT_REQUEST_INFO,
+ /* equiv idx, value */ 6, VALUE_OPT_REQUEST_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ REQUEST_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --request-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ REQUEST_INFO_DESC, REQUEST_INFO_NAME,
REQUEST_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 7, VALUE_OPT_RESPONSE_INFO,
+ /* equiv idx, value */ 7, VALUE_OPT_RESPONSE_INFO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ RESPONSE_INFO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --response-info */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ RESPONSE_INFO_DESC, RESPONSE_INFO_NAME,
RESPONSE_INFO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 8, VALUE_OPT_GENERATE_REQUEST,
+ /* equiv idx, value */ 8, VALUE_OPT_GENERATE_REQUEST,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_REQUEST_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-request */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_REQUEST_DESC, GENERATE_REQUEST_NAME,
GENERATE_REQUEST_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 9, VALUE_OPT_NONCE,
+ /* equiv idx, value */ 9, VALUE_OPT_NONCE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ NONCE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --nonce */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ NONCE_DESC, NONCE_NAME, NONCE_name,
+ /* disablement strs */ NOT_NONCE_name, NOT_NONCE_PFX },
+
+ { /* entry idx, value */ 10, VALUE_OPT_LOAD_ISSUER,
+ /* equiv idx, value */ 10, VALUE_OPT_LOAD_ISSUER,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_ISSUER_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-issuer */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptLoad_Issuer,
+ /* desc, NAME, name */ LOAD_ISSUER_DESC, LOAD_ISSUER_NAME,
LOAD_ISSUER_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 11, VALUE_OPT_LOAD_CERT,
+ /* equiv idx, value */ 11, VALUE_OPT_LOAD_CERT,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_CERT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-cert */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptLoad_Cert,
+ /* desc, NAME, name */ LOAD_CERT_DESC, LOAD_CERT_NAME, LOAD_CERT_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 12, VALUE_OPT_LOAD_TRUST,
+ /* equiv idx, value */ 12, VALUE_OPT_LOAD_TRUST,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_TRUST_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-trust */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, aLoad_TrustCantList,
+ /* option proc */ doOptLoad_Trust,
+ /* desc, NAME, name */ LOAD_TRUST_DESC, LOAD_TRUST_NAME, LOAD_TRUST_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 13, VALUE_OPT_LOAD_SIGNER,
+ /* equiv idx, value */ 13, VALUE_OPT_LOAD_SIGNER,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_SIGNER_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-signer */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, aLoad_SignerCantList,
+ /* option proc */ doOptLoad_Signer,
+ /* desc, NAME, name */ LOAD_SIGNER_DESC, LOAD_SIGNER_NAME,
LOAD_SIGNER_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 14, VALUE_OPT_INDER,
+ /* equiv idx, value */ 14, VALUE_OPT_INDER,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ INDER_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --inder */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ INDER_DESC, INDER_NAME, INDER_name,
+ /* disablement strs */ NOT_INDER_name, NOT_INDER_PFX },
+
+ { /* entry idx, value */ 15, VALUE_OPT_LOAD_REQUEST,
+ /* equiv idx, value */ 15, VALUE_OPT_LOAD_REQUEST,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_REQUEST_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-request */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptLoad_Request,
+ /* desc, NAME, name */ LOAD_REQUEST_DESC, LOAD_REQUEST_NAME,
LOAD_REQUEST_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 16, VALUE_OPT_LOAD_RESPONSE,
+ /* equiv idx, value */ 16, VALUE_OPT_LOAD_RESPONSE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_RESPONSE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-response */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptLoad_Response,
+ /* desc, NAME, name */ LOAD_RESPONSE_DESC, LOAD_RESPONSE_NAME,
LOAD_RESPONSE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VER_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ VER_PROC,
+ /* desc, NAME, name */ VER_DESC, NULL, VER_name,
+ /* disablement strs */ NULL, NULL },
+
+
+
+ { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doUsageOpt,
+ /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ MORE_HELP_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionPagedUsage,
+ /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
+ /* disablement strs */ NULL, NULL }
+};
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Define the ocsptool Option Environment
+ */
+#define zPROGNAME (ocsptool_opt_strs+1928)
+#define zUsageTitle (ocsptool_opt_strs+1937)
+#define zRcName NULL
+#define apzHomeList NULL
+#define zBugsAddr (ocsptool_opt_strs+2040)
+#define zExplain (ocsptool_opt_strs+2059)
+#define zDetail (ocsptool_opt_strs+2062)
+#define zFullVersion (ocsptool_opt_strs+2194)
+/* extracted from optcode.tlib near line 350 */
+
+#if defined(ENABLE_NLS)
+# define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
+ static tOptionXlateProc translate_option_strings;
+#else
+# define OPTPROC_BASE OPTPROC_NONE
+# define translate_option_strings NULL
+#endif /* ENABLE_NLS */
+
+
+#define ocsptool_full_usage (NULL)
+
+#define ocsptool_short_usage (ocsptool_opt_strs+2213)
+
+#endif /* not defined __doxygen__ */
+
+/*
+ * Create the static procedure(s) declared above.
+ */
+/**
+ * The callout function that invokes the optionUsage function.
+ *
+ * @param pOptions the AutoOpts option description structure
+ * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @noreturn
+ */
+static void
+doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
+{
+ optionUsage(&ocsptoolOptions, OCSPTOOL_EXIT_SUCCESS);
+ /* NOTREACHED */
+ (void)pOptDesc;
+ (void)pOptions;
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the debug option.
+ *
+ * @param pOptions the ocsptool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0 , 9999 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the infile option.
+ *
+ * @param pOptions the ocsptool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the load-issuer option.
+ *
+ * @param pOptions the ocsptool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptLoad_Issuer(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the load-cert option.
+ *
+ * @param pOptions the ocsptool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptLoad_Cert(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the load-trust option.
+ *
+ * @param pOptions the ocsptool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptLoad_Trust(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the load-signer option.
+ *
+ * @param pOptions the ocsptool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptLoad_Signer(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the load-request option.
+ *
+ * @param pOptions the ocsptool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptLoad_Request(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the load-response option.
+ *
+ * @param pOptions the ocsptool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptLoad_Response(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+/* extracted from optmain.tlib near line 1113 */
+
+/**
+ * The directory containing the data associated with ocsptool.
+ */
+#ifndef PKGDATADIR
+# define PKGDATADIR ""
+#endif
+
+/**
+ * Information about the person or institution that packaged ocsptool
+ * for the current distribution.
+ */
+#ifndef WITH_PACKAGER
+# define ocsptool_packager_info NULL
+#else
+static char const ocsptool_packager_info[] =
+ "Packaged by " WITH_PACKAGER
+
+# ifdef WITH_PACKAGER_VERSION
+ " ("WITH_PACKAGER_VERSION")"
+# endif
+
+# ifdef WITH_PACKAGER_BUG_REPORTS
+ "\nReport ocsptool bugs to " WITH_PACKAGER_BUG_REPORTS
+# endif
+ "\n";
+#endif
+#ifndef __doxygen__
+
+#endif /* __doxygen__ */
+/**
+ * The option definitions for ocsptool. The one structure that
+ * binds them all.
+ */
+tOptions ocsptoolOptions = {
+ OPTIONS_STRUCT_VERSION,
+ 0, NULL, /* original argc + argv */
+ ( OPTPROC_BASE
+ + OPTPROC_ERRSTOP
+ + OPTPROC_SHORTOPT
+ + OPTPROC_LONGOPT
+ + OPTPROC_NO_REQ_OPT
+ + OPTPROC_NEGATIONS
+ + OPTPROC_NO_ARGS
+ + OPTPROC_GNUUSAGE
+ + OPTPROC_MISUSE ),
+ 0, NULL, /* current option index, current option */
+ NULL, NULL, zPROGNAME,
+ zRcName, zCopyright, zLicenseDescrip,
+ zFullVersion, apzHomeList, zUsageTitle,
+ zExplain, zDetail, optDesc,
+ zBugsAddr, /* address to send bugs to */
+ NULL, NULL, /* extensions/saved state */
+ optionUsage, /* usage procedure */
+ translate_option_strings, /* translation procedure */
+ /*
+ * Indexes to special options
+ */
+ { INDEX_OPT_MORE_HELP, /* more-help option index */
+ NO_EQUIVALENT, /* save option index */
+ NO_EQUIVALENT, /* '-#' option index */
+ NO_EQUIVALENT /* index of default opt */
+ },
+ 20 /* full option count */, 17 /* user option count */,
+ ocsptool_full_usage, ocsptool_short_usage,
+ NULL, NULL,
+ PKGDATADIR, ocsptool_packager_info
+};
+
+#if ENABLE_NLS
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <autoopts/usage-txt.h>
+
+static char* AO_gettext(char const* pz);
+static void coerce_it(void** s);
+
+/**
+ * AutoGen specific wrapper function for gettext.
+ * It relies on the macro _() to convert from English to the target
+ * language, then strdup-duplicates the result string.
+ *
+ * @param[in] pz the input text used as a lookup key.
+ * @returns the translated text (if there is one),
+ * or the original text (if not).
+ */
+static char *
+AO_gettext(char const* pz)
+{
+ char* pzRes;
+ if (pz == NULL)
+ return NULL;
+ pzRes = _(pz);
+ if (pzRes == pz)
+ return pzRes;
+ pzRes = strdup(pzRes);
+ if (pzRes == NULL) {
+ fputs(_("No memory for duping translated strings\n"), stderr);
+ exit(OCSPTOOL_EXIT_FAILURE);
+ }
+ return pzRes;
+}
+
+static void coerce_it(void** s) { *s = AO_gettext(*s);
+}
+
+/**
+ * Translate all the translatable strings in the ocsptoolOptions
+ * structure defined above. This is done only once.
+ */
+static void
+translate_option_strings(void)
+{
+ tOptions * const pOpt = &ocsptoolOptions;
+
+ /*
+ * Guard against re-translation. It won't work. The strings will have
+ * been changed by the first pass through this code. One shot only.
+ */
+ if (option_usage_text.field_ct != 0) {
+ /*
+ * Do the translations. The first pointer follows the field count
+ * field. The field count field is the size of a pointer.
+ */
+ tOptDesc * pOD = pOpt->pOptDesc;
+ char ** ppz = (char**)(void*)&(option_usage_text);
+ int ix = option_usage_text.field_ct;
+
+ do {
+ ppz++;
+ *ppz = AO_gettext(*ppz);
+ } while (--ix > 0);
+
+ coerce_it((void*)&(pOpt->pzCopyright));
+ coerce_it((void*)&(pOpt->pzCopyNotice));
+ coerce_it((void*)&(pOpt->pzFullVersion));
+ coerce_it((void*)&(pOpt->pzUsageTitle));
+ coerce_it((void*)&(pOpt->pzExplain));
+ coerce_it((void*)&(pOpt->pzDetail));
+ coerce_it((void*)&(pOpt->pzPackager));
+ coerce_it((void*)&(pOpt->pzShortUsage));
+ option_usage_text.field_ct = 0;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
+ coerce_it((void*)&(pOD->pzText));
+ }
+
+ if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
+ tOptDesc * pOD = pOpt->pOptDesc;
+ int ix;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
+ coerce_it((void*)&(pOD->pz_Name));
+ coerce_it((void*)&(pOD->pz_DisableName));
+ coerce_it((void*)&(pOD->pz_DisablePfx));
+ }
+ /* prevent re-translation */
+ ocsptoolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
+ }
+}
+
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+/* ocsptool-args.c ends here */
diff --git a/src/ocsptool-args.h b/src/ocsptool-args.h
new file mode 100644
index 0000000..3e58ca5
--- /dev/null
+++ b/src/ocsptool-args.h
@@ -0,0 +1,215 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (ocsptool-args.h)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:25 PM by AutoGen 5.16
+ * From the definitions ocsptool-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This header file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the ocsptool author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The ocsptool program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * ocsptool is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * ocsptool is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * This file contains the programmatic interface to the Automated
+ * Options generated for the ocsptool program.
+ * These macros are documented in the AutoGen info file in the
+ * "AutoOpts" chapter. Please refer to that doc for usage help.
+ */
+#ifndef AUTOOPTS_OCSPTOOL_ARGS_H_GUARD
+#define AUTOOPTS_OCSPTOOL_ARGS_H_GUARD 1
+#include "config.h"
+#include <autoopts/options.h>
+
+/*
+ * Ensure that the library used for compiling this generated header is at
+ * least as new as the version current when the header template was released
+ * (not counting patch version increments). Also ensure that the oldest
+ * tolerable version is at least as old as what was current when the header
+ * template was released.
+ */
+#define AO_TEMPLATE_VERSION 147460
+#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
+ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
+# error option template version mismatches autoopts/options.h header
+ Choke Me.
+#endif
+
+/*
+ * Enumeration of each option:
+ */
+typedef enum {
+ INDEX_OPT_DEBUG = 0,
+ INDEX_OPT_VERBOSE = 1,
+ INDEX_OPT_INFILE = 2,
+ INDEX_OPT_OUTFILE = 3,
+ INDEX_OPT_ASK = 4,
+ INDEX_OPT_VERIFY_RESPONSE = 5,
+ INDEX_OPT_REQUEST_INFO = 6,
+ INDEX_OPT_RESPONSE_INFO = 7,
+ INDEX_OPT_GENERATE_REQUEST = 8,
+ INDEX_OPT_NONCE = 9,
+ INDEX_OPT_LOAD_ISSUER = 10,
+ INDEX_OPT_LOAD_CERT = 11,
+ INDEX_OPT_LOAD_TRUST = 12,
+ INDEX_OPT_LOAD_SIGNER = 13,
+ INDEX_OPT_INDER = 14,
+ INDEX_OPT_LOAD_REQUEST = 15,
+ INDEX_OPT_LOAD_RESPONSE = 16,
+ INDEX_OPT_VERSION = 17,
+ INDEX_OPT_HELP = 18,
+ INDEX_OPT_MORE_HELP = 19
+} teOptIndex;
+
+#define OPTION_CT 20
+#define OCSPTOOL_VERSION "@VERSION@"
+#define OCSPTOOL_FULL_VERSION "ocsptool @VERSION@"
+
+/*
+ * Interface defines for all options. Replace "n" with the UPPER_CASED
+ * option name (as in the teOptIndex enumeration above).
+ * e.g. HAVE_OPT(DEBUG)
+ */
+#define DESC(n) (ocsptoolOptions.pOptDesc[INDEX_OPT_## n])
+#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+#define OPT_ARG(n) (DESC(n).optArg.argString)
+#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+#define COUNT_OPT(n) (DESC(n).optOccCt)
+#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+#define CLEAR_OPT(n) STMTS( \
+ DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
+ if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
+ DESC(n).fOptState |= OPTST_DISABLED; \
+ DESC(n).optCookie = NULL )
+
+/* * * * * *
+ *
+ * Enumeration of ocsptool exit codes
+ */
+typedef enum {
+ OCSPTOOL_EXIT_SUCCESS = 0,
+ OCSPTOOL_EXIT_FAILURE = 1,
+ OCSPTOOL_EXIT_LIBOPTS_FAILURE = 70
+} ocsptool_exit_code_t;
+/* * * * * *
+ *
+ * Interface defines for specific options.
+ */
+#define VALUE_OPT_DEBUG 'd'
+
+#define OPT_VALUE_DEBUG (DESC(DEBUG).optArg.argInt)
+#define VALUE_OPT_VERBOSE 'V'
+#define VALUE_OPT_INFILE 2
+#define VALUE_OPT_OUTFILE 3
+#define VALUE_OPT_ASK 4
+#define VALUE_OPT_VERIFY_RESPONSE 'e'
+#define VALUE_OPT_REQUEST_INFO 'i'
+#define VALUE_OPT_RESPONSE_INFO 'j'
+#define VALUE_OPT_GENERATE_REQUEST 'q'
+#define VALUE_OPT_NONCE 9
+#define VALUE_OPT_LOAD_ISSUER 10
+#define VALUE_OPT_LOAD_CERT 11
+#define VALUE_OPT_LOAD_TRUST 12
+#define VALUE_OPT_LOAD_SIGNER 13
+#define VALUE_OPT_INDER 14
+#define VALUE_OPT_LOAD_REQUEST 'Q'
+#define VALUE_OPT_LOAD_RESPONSE 'S'
+#define VALUE_OPT_HELP 'h'
+#define VALUE_OPT_MORE_HELP '!'
+#define VALUE_OPT_VERSION 'v'
+/*
+ * Interface defines not associated with particular options
+ */
+#define ERRSKIP_OPTERR STMTS(ocsptoolOptions.fOptSet &= ~OPTPROC_ERRSTOP)
+#define ERRSTOP_OPTERR STMTS(ocsptoolOptions.fOptSet |= OPTPROC_ERRSTOP)
+#define RESTART_OPT(n) STMTS( \
+ ocsptoolOptions.curOptIdx = (n); \
+ ocsptoolOptions.pzCurOpt = NULL)
+#define START_OPT RESTART_OPT(1)
+#define USAGE(c) (*ocsptoolOptions.pUsageProc)(&ocsptoolOptions, c)
+/* extracted from opthead.tlib near line 484 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * global exported definitions
+ */
+#include <gettext.h>
+
+
+/* * * * * *
+ *
+ * Declare the ocsptool option descriptor.
+ */
+extern tOptions ocsptoolOptions;
+
+#if defined(ENABLE_NLS)
+# ifndef _
+# include <stdio.h>
+static inline char* aoGetsText(char const* pz) {
+ if (pz == NULL) return NULL;
+ return (char*)gettext(pz);
+}
+# define _(s) aoGetsText(s)
+# endif /* _() */
+
+# define OPT_NO_XLAT_CFG_NAMES STMTS(ocsptoolOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT_CFG;)
+# define OPT_NO_XLAT_OPT_NAMES STMTS(ocsptoolOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
+
+# define OPT_XLAT_CFG_NAMES STMTS(ocsptoolOptions.fOptSet &= \
+ ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
+# define OPT_XLAT_OPT_NAMES STMTS(ocsptoolOptions.fOptSet &= \
+ ~OPTPROC_NXLAT_OPT;)
+
+#else /* ENABLE_NLS */
+# define OPT_NO_XLAT_CFG_NAMES
+# define OPT_NO_XLAT_OPT_NAMES
+
+# define OPT_XLAT_CFG_NAMES
+# define OPT_XLAT_OPT_NAMES
+
+# ifndef _
+# define _(_s) _s
+# endif
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AUTOOPTS_OCSPTOOL_ARGS_H_GUARD */
+/* ocsptool-args.h ends here */
diff --git a/src/p11tool-args.c b/src/p11tool-args.c
new file mode 100644
index 0000000..3ca4a47
--- /dev/null
+++ b/src/p11tool-args.c
@@ -0,0 +1,1274 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (p11tool-args.c)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:30 PM by AutoGen 5.16
+ * From the definitions p11tool-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This source file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the p11tool author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The p11tool program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * p11tool is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * p11tool is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __doxygen__
+#define OPTION_CODE_COMPILE 1
+#include "p11tool-args.h"
+#include <sys/types.h>
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern FILE * option_usage_fp;
+
+/* TRANSLATORS: choose the translation for option names wisely because you
+ cannot ever change your mind. */
+#define zCopyright (p11tool_opt_strs+0)
+#define zLicenseDescrip (p11tool_opt_strs+278)
+
+
+#ifndef NULL
+# define NULL 0
+#endif
+
+/*
+ * p11tool option static const strings
+ */
+static char const p11tool_opt_strs[3155] =
+/* 0 */ "p11tool @address@hidden"
+ "Copyright (C) 2000-2012 Free Software Foundation, all rights
reserved.\n"
+ "This is free software. It is licensed for use, modification and\n"
+ "redistribution under the terms of the\n"
+ "GNU General Public License, version 3 or later\n"
+ " <http://gnu.org/licenses/gpl.html>\n\0"
+/* 278 */ "p11tool is free software: you can redistribute it and/or modify
it under\n"
+ "the terms of the GNU General Public License as published by the
Free\n"
+ "Software Foundation, either version 3 of the License, or (at your
option)\n"
+ "any later version.\n\n"
+ "p11tool is distributed in the hope that it will be useful, but
WITHOUT ANY\n"
+ "WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS\n"
+ "FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more\n"
+ "details.\n\n"
+ "You should have received a copy of the GNU General Public License
along\n"
+ "with this program. If not, see
<http://www.gnu.org/licenses/>.\n\0"
+/* 881 */ "Enable debugging.\0"
+/* 899 */ "DEBUG\0"
+/* 905 */ "debug\0"
+/* 911 */ "Output file\0"
+/* 923 */ "OUTFILE\0"
+/* 931 */ "outfile\0"
+/* 939 */ "List all available tokens\0"
+/* 965 */ "LIST_TOKENS\0"
+/* 977 */ "list-tokens\0"
+/* 989 */ "Export the object specified by the URL\0"
+/* 1028 */ "EXPORT\0"
+/* 1035 */ "export\0"
+/* 1042 */ "List all available mechanisms in a token\0"
+/* 1083 */ "LIST_MECHANISMS\0"
+/* 1099 */ "list-mechanisms\0"
+/* 1115 */ "List all available objects in a token\0"
+/* 1153 */ "LIST_ALL\0"
+/* 1162 */ "list-all\0"
+/* 1171 */ "List all available certificates in a token\0"
+/* 1214 */ "LIST_ALL_CERTS\0"
+/* 1229 */ "list-all-certs\0"
+/* 1244 */ "List all certificates that have an associated private key\0"
+/* 1302 */ "LIST_CERTS\0"
+/* 1313 */ "list-certs\0"
+/* 1324 */ "List all available private keys in a token\0"
+/* 1367 */ "LIST_ALL_PRIVKEYS\0"
+/* 1385 */ "list-all-privkeys\0"
+/* 1403 */ "List all available certificates marked as trusted\0"
+/* 1453 */ "LIST_ALL_TRUSTED\0"
+/* 1470 */ "list-all-trusted\0"
+/* 1487 */ "Initializes a PKCS #11 token\0"
+/* 1516 */ "INITIALIZE\0"
+/* 1527 */ "initialize\0"
+/* 1538 */ "Writes the loaded objects to a PKCS #11 token\0"
+/* 1584 */ "WRITE\0"
+/* 1590 */ "write\0"
+/* 1596 */ "Deletes the objects matching the PKCS #11 URL\0"
+/* 1642 */ "DELETE\0"
+/* 1649 */ "delete\0"
+/* 1656 */ "Generate an RSA private-public key pair\0"
+/* 1696 */ "GENERATE_RSA\0"
+/* 1709 */ "generate-rsa\0"
+/* 1722 */ "GENERATE_DSA\0"
+/* 1735 */ "generate-dsa\0"
+/* 1748 */ "GENERATE_ECC\0"
+/* 1761 */ "generate-ecc\0"
+/* 1774 */ "Sets a label for the write operation\0"
+/* 1811 */ "LABEL\0"
+/* 1817 */ "label\0"
+/* 1823 */ "Marks the object to be written as trusted\0"
+/* 1865 */ "TRUSTED\0"
+/* 1873 */ "no-trusted\0"
+/* 1884 */ "no\0"
+/* 1887 */ "Marks the object to be written as private\0"
+/* 1929 */ "PRIVATE\0"
+/* 1937 */ "no-private\0"
+/* 1948 */ "Force login to token\0"
+/* 1969 */ "LOGIN\0"
+/* 1975 */ "no-login\0"
+/* 1984 */ "Print detailed URLs\0"
+/* 2004 */ "DETAILED_URL\0"
+/* 2017 */ "no-detailed-url\0"
+/* 2033 */ "Provide a hex encoded secret key\0"
+/* 2066 */ "SECRET_KEY\0"
+/* 2077 */ "secret-key\0"
+/* 2088 */ "Private key file to use\0"
+/* 2112 */ "LOAD_PRIVKEY\0"
+/* 2125 */ "load-privkey\0"
+/* 2138 */ "Public key file to use\0"
+/* 2161 */ "LOAD_PUBKEY\0"
+/* 2173 */ "load-pubkey\0"
+/* 2185 */ "Certificate file to use\0"
+/* 2209 */ "LOAD_CERTIFICATE\0"
+/* 2226 */ "load-certificate\0"
+/* 2243 */ "Use PKCS #8 format for private keys\0"
+/* 2279 */ "PKCS8\0"
+/* 2285 */ "pkcs8\0"
+/* 2291 */ "Specify the number of bits for key generate\0"
+/* 2335 */ "BITS\0"
+/* 2340 */ "bits\0"
+/* 2345 */ "Specify the security level\0"
+/* 2372 */ "SEC_PARAM\0"
+/* 2382 */ "sec-param\0"
+/* 2392 */ "Use DER/RAW format for input\0"
+/* 2421 */ "INDER\0"
+/* 2427 */ "no-inder\0"
+/* 2436 */ "This is an alias for 'inder'\0"
+/* 2465 */ "inraw\0"
+/* 2471 */ "Specify the PKCS #11 provider library\0"
+/* 2509 */ "PROVIDER\0"
+/* 2518 */ "provider\0"
+/* 2527 */ "Display extended usage information and exit\0"
+/* 2571 */ "help\0"
+/* 2576 */ "Extended usage information passed thru pager\0"
+/* 2621 */ "more-help\0"
+/* 2631 */ "Output version information and exit\0"
+/* 2667 */ "version\0"
+/* 2675 */ "P11TOOL\0"
+/* 2683 */ "p11tool - GnuTLS PKCS #11 tool - Ver. @address@hidden"
+ "USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
[url]\n\0"
+/* 2795 */ "address@hidden"
+/* 2814 */ "\n\n\0"
+/* 2817 */ "\n"
+ "Program that allows handling data from PKCS #11 smart cards and
security\n"
+ "modules.\n\n"
+ "To use PKCS #11 tokens with gnutls the configuration file\n"
+ "/etc/gnutls/pkcs11.conf has to exist and contain a number of
lines of the\n"
+ "form 'load=/usr/lib/opensc-pkcs11.so'.\n\0"
+/* 3073 */ "p11tool @address@hidden"
+/* 3091 */ "p11tool [options] [url]\n"
+ "p11tool --help for usage instructions.\n";
+
+/*
+ * debug option description:
+ */
+#define DEBUG_DESC (p11tool_opt_strs+881)
+#define DEBUG_NAME (p11tool_opt_strs+899)
+#define DEBUG_name (p11tool_opt_strs+905)
+#define DEBUG_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * outfile option description:
+ */
+#define OUTFILE_DESC (p11tool_opt_strs+911)
+#define OUTFILE_NAME (p11tool_opt_strs+923)
+#define OUTFILE_name (p11tool_opt_strs+931)
+#define OUTFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * list-tokens option description:
+ */
+#define LIST_TOKENS_DESC (p11tool_opt_strs+939)
+#define LIST_TOKENS_NAME (p11tool_opt_strs+965)
+#define LIST_TOKENS_name (p11tool_opt_strs+977)
+#define LIST_TOKENS_FLAGS (OPTST_DISABLED)
+
+/*
+ * export option description:
+ */
+#define EXPORT_DESC (p11tool_opt_strs+989)
+#define EXPORT_NAME (p11tool_opt_strs+1028)
+#define EXPORT_name (p11tool_opt_strs+1035)
+#define EXPORT_FLAGS (OPTST_DISABLED)
+
+/*
+ * list-mechanisms option description:
+ */
+#define LIST_MECHANISMS_DESC (p11tool_opt_strs+1042)
+#define LIST_MECHANISMS_NAME (p11tool_opt_strs+1083)
+#define LIST_MECHANISMS_name (p11tool_opt_strs+1099)
+#define LIST_MECHANISMS_FLAGS (OPTST_DISABLED)
+
+/*
+ * list-all option description:
+ */
+#define LIST_ALL_DESC (p11tool_opt_strs+1115)
+#define LIST_ALL_NAME (p11tool_opt_strs+1153)
+#define LIST_ALL_name (p11tool_opt_strs+1162)
+#define LIST_ALL_FLAGS (OPTST_DISABLED)
+
+/*
+ * list-all-certs option description:
+ */
+#define LIST_ALL_CERTS_DESC (p11tool_opt_strs+1171)
+#define LIST_ALL_CERTS_NAME (p11tool_opt_strs+1214)
+#define LIST_ALL_CERTS_name (p11tool_opt_strs+1229)
+#define LIST_ALL_CERTS_FLAGS (OPTST_DISABLED)
+
+/*
+ * list-certs option description:
+ */
+#define LIST_CERTS_DESC (p11tool_opt_strs+1244)
+#define LIST_CERTS_NAME (p11tool_opt_strs+1302)
+#define LIST_CERTS_name (p11tool_opt_strs+1313)
+#define LIST_CERTS_FLAGS (OPTST_DISABLED)
+
+/*
+ * list-all-privkeys option description:
+ */
+#define LIST_ALL_PRIVKEYS_DESC (p11tool_opt_strs+1324)
+#define LIST_ALL_PRIVKEYS_NAME (p11tool_opt_strs+1367)
+#define LIST_ALL_PRIVKEYS_name (p11tool_opt_strs+1385)
+#define LIST_ALL_PRIVKEYS_FLAGS (OPTST_DISABLED)
+
+/*
+ * list-all-trusted option description:
+ */
+#define LIST_ALL_TRUSTED_DESC (p11tool_opt_strs+1403)
+#define LIST_ALL_TRUSTED_NAME (p11tool_opt_strs+1453)
+#define LIST_ALL_TRUSTED_name (p11tool_opt_strs+1470)
+#define LIST_ALL_TRUSTED_FLAGS (OPTST_DISABLED)
+
+/*
+ * initialize option description:
+ */
+#define INITIALIZE_DESC (p11tool_opt_strs+1487)
+#define INITIALIZE_NAME (p11tool_opt_strs+1516)
+#define INITIALIZE_name (p11tool_opt_strs+1527)
+#define INITIALIZE_FLAGS (OPTST_DISABLED)
+
+/*
+ * write option description:
+ */
+#define WRITE_DESC (p11tool_opt_strs+1538)
+#define WRITE_NAME (p11tool_opt_strs+1584)
+#define WRITE_name (p11tool_opt_strs+1590)
+#define WRITE_FLAGS (OPTST_DISABLED)
+
+/*
+ * delete option description:
+ */
+#define DELETE_DESC (p11tool_opt_strs+1596)
+#define DELETE_NAME (p11tool_opt_strs+1642)
+#define DELETE_name (p11tool_opt_strs+1649)
+#define DELETE_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate-rsa option description:
+ */
+#define GENERATE_RSA_DESC (p11tool_opt_strs+1656)
+#define GENERATE_RSA_NAME (p11tool_opt_strs+1696)
+#define GENERATE_RSA_name (p11tool_opt_strs+1709)
+#define GENERATE_RSA_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate-dsa option description:
+ */
+#define GENERATE_DSA_DESC (p11tool_opt_strs+1656)
+#define GENERATE_DSA_NAME (p11tool_opt_strs+1722)
+#define GENERATE_DSA_name (p11tool_opt_strs+1735)
+#define GENERATE_DSA_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate-ecc option description:
+ */
+#define GENERATE_ECC_DESC (p11tool_opt_strs+1656)
+#define GENERATE_ECC_NAME (p11tool_opt_strs+1748)
+#define GENERATE_ECC_name (p11tool_opt_strs+1761)
+#define GENERATE_ECC_FLAGS (OPTST_DISABLED)
+
+/*
+ * label option description:
+ */
+#define LABEL_DESC (p11tool_opt_strs+1774)
+#define LABEL_NAME (p11tool_opt_strs+1811)
+#define LABEL_name (p11tool_opt_strs+1817)
+#define LABEL_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * trusted option description:
+ */
+#define TRUSTED_DESC (p11tool_opt_strs+1823)
+#define TRUSTED_NAME (p11tool_opt_strs+1865)
+#define NOT_TRUSTED_name (p11tool_opt_strs+1873)
+#define NOT_TRUSTED_PFX (p11tool_opt_strs+1884)
+#define TRUSTED_name (NOT_TRUSTED_name + 3)
+#define TRUSTED_FLAGS (OPTST_DISABLED)
+
+/*
+ * private option description:
+ */
+#define PRIVATE_DESC (p11tool_opt_strs+1887)
+#define PRIVATE_NAME (p11tool_opt_strs+1929)
+#define NOT_PRIVATE_name (p11tool_opt_strs+1937)
+#define NOT_PRIVATE_PFX (p11tool_opt_strs+1884)
+#define PRIVATE_name (NOT_PRIVATE_name + 3)
+#define PRIVATE_FLAGS (OPTST_INITENABLED)
+
+/*
+ * login option description:
+ */
+#define LOGIN_DESC (p11tool_opt_strs+1948)
+#define LOGIN_NAME (p11tool_opt_strs+1969)
+#define NOT_LOGIN_name (p11tool_opt_strs+1975)
+#define NOT_LOGIN_PFX (p11tool_opt_strs+1884)
+#define LOGIN_name (NOT_LOGIN_name + 3)
+#define LOGIN_FLAGS (OPTST_DISABLED)
+
+/*
+ * detailed-url option description:
+ */
+#define DETAILED_URL_DESC (p11tool_opt_strs+1984)
+#define DETAILED_URL_NAME (p11tool_opt_strs+2004)
+#define NOT_DETAILED_URL_name (p11tool_opt_strs+2017)
+#define NOT_DETAILED_URL_PFX (p11tool_opt_strs+1884)
+#define DETAILED_URL_name (NOT_DETAILED_URL_name + 3)
+#define DETAILED_URL_FLAGS (OPTST_DISABLED)
+
+/*
+ * secret-key option description:
+ */
+#define SECRET_KEY_DESC (p11tool_opt_strs+2033)
+#define SECRET_KEY_NAME (p11tool_opt_strs+2066)
+#define SECRET_KEY_name (p11tool_opt_strs+2077)
+#define SECRET_KEY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * load-privkey option description:
+ */
+#define LOAD_PRIVKEY_DESC (p11tool_opt_strs+2088)
+#define LOAD_PRIVKEY_NAME (p11tool_opt_strs+2112)
+#define LOAD_PRIVKEY_name (p11tool_opt_strs+2125)
+#define LOAD_PRIVKEY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * load-pubkey option description:
+ */
+#define LOAD_PUBKEY_DESC (p11tool_opt_strs+2138)
+#define LOAD_PUBKEY_NAME (p11tool_opt_strs+2161)
+#define LOAD_PUBKEY_name (p11tool_opt_strs+2173)
+#define LOAD_PUBKEY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * load-certificate option description:
+ */
+#define LOAD_CERTIFICATE_DESC (p11tool_opt_strs+2185)
+#define LOAD_CERTIFICATE_NAME (p11tool_opt_strs+2209)
+#define LOAD_CERTIFICATE_name (p11tool_opt_strs+2226)
+#define LOAD_CERTIFICATE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * pkcs8 option description:
+ */
+#define PKCS8_DESC (p11tool_opt_strs+2243)
+#define PKCS8_NAME (p11tool_opt_strs+2279)
+#define PKCS8_name (p11tool_opt_strs+2285)
+#define PKCS8_FLAGS (OPTST_DISABLED)
+
+/*
+ * bits option description:
+ */
+#define BITS_DESC (p11tool_opt_strs+2291)
+#define BITS_NAME (p11tool_opt_strs+2335)
+#define BITS_name (p11tool_opt_strs+2340)
+#define BITS_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * sec-param option description:
+ */
+#define SEC_PARAM_DESC (p11tool_opt_strs+2345)
+#define SEC_PARAM_NAME (p11tool_opt_strs+2372)
+#define SEC_PARAM_name (p11tool_opt_strs+2382)
+#define SEC_PARAM_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * inder option description:
+ */
+#define INDER_DESC (p11tool_opt_strs+2392)
+#define INDER_NAME (p11tool_opt_strs+2421)
+#define NOT_INDER_name (p11tool_opt_strs+2427)
+#define NOT_INDER_PFX (p11tool_opt_strs+1884)
+#define INDER_name (NOT_INDER_name + 3)
+#define INDER_FLAGS (OPTST_DISABLED)
+
+/*
+ * inraw option description:
+ */
+#define INRAW_DESC (p11tool_opt_strs+2436)
+#define INRAW_NAME NULL
+#define INRAW_name (p11tool_opt_strs+2465)
+#define INRAW_FLAGS (INDER_FLAGS | OPTST_ALIAS)
+
+/*
+ * provider option description:
+ */
+#define PROVIDER_DESC (p11tool_opt_strs+2471)
+#define PROVIDER_NAME (p11tool_opt_strs+2509)
+#define PROVIDER_name (p11tool_opt_strs+2518)
+#define PROVIDER_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * Help/More_Help/Version option descriptions:
+ */
+#define HELP_DESC (p11tool_opt_strs+2527)
+#define HELP_name (p11tool_opt_strs+2571)
+#ifdef HAVE_WORKING_FORK
+#define MORE_HELP_DESC (p11tool_opt_strs+2576)
+#define MORE_HELP_name (p11tool_opt_strs+2621)
+#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+#define MORE_HELP_DESC NULL
+#define MORE_HELP_name NULL
+#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
+#endif
+#ifdef NO_OPTIONAL_OPT_ARGS
+# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
+ OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
+#endif
+#define VER_DESC (p11tool_opt_strs+2631)
+#define VER_name (p11tool_opt_strs+2667)
+/*
+ * Declare option callback procedures
+ */
+extern tOptProc
+ optionBooleanVal, optionNestedVal, optionNumericVal,
+ optionPagedUsage, optionPrintVersion, optionResetOpt,
+ optionStackArg, optionTimeDate, optionTimeVal,
+ optionUnstackArg, optionVendorOption;
+static tOptProc
+ doOptDebug, doOptInraw, doOptLoad_Certificate,
+ doOptLoad_Privkey, doOptLoad_Pubkey, doOptProvider,
+ doUsageOpt;
+#define VER_PROC optionPrintVersion
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Define the p11tool Option Descriptions.
+ * This is an array of OPTION_CT entries, one for each
+ * option that the p11tool program responds to.
+ */
+static tOptDesc optDesc[OPTION_CT] = {
+ { /* entry idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equiv idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DEBUG_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --debug */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptDebug,
+ /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 1, VALUE_OPT_OUTFILE,
+ /* equiv idx, value */ 1, VALUE_OPT_OUTFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OUTFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --outfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ OUTFILE_DESC, OUTFILE_NAME, OUTFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 2, VALUE_OPT_LIST_TOKENS,
+ /* equiv idx, value */ 2, VALUE_OPT_LIST_TOKENS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LIST_TOKENS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --list-tokens */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LIST_TOKENS_DESC, LIST_TOKENS_NAME,
LIST_TOKENS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 3, VALUE_OPT_EXPORT,
+ /* equiv idx, value */ 3, VALUE_OPT_EXPORT,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ EXPORT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --export */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ EXPORT_DESC, EXPORT_NAME, EXPORT_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 4, VALUE_OPT_LIST_MECHANISMS,
+ /* equiv idx, value */ 4, VALUE_OPT_LIST_MECHANISMS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LIST_MECHANISMS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --list-mechanisms */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LIST_MECHANISMS_DESC, LIST_MECHANISMS_NAME,
LIST_MECHANISMS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 5, VALUE_OPT_LIST_ALL,
+ /* equiv idx, value */ 5, VALUE_OPT_LIST_ALL,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LIST_ALL_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --list-all */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LIST_ALL_DESC, LIST_ALL_NAME, LIST_ALL_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 6, VALUE_OPT_LIST_ALL_CERTS,
+ /* equiv idx, value */ 6, VALUE_OPT_LIST_ALL_CERTS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LIST_ALL_CERTS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --list-all-certs */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LIST_ALL_CERTS_DESC, LIST_ALL_CERTS_NAME,
LIST_ALL_CERTS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 7, VALUE_OPT_LIST_CERTS,
+ /* equiv idx, value */ 7, VALUE_OPT_LIST_CERTS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LIST_CERTS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --list-certs */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LIST_CERTS_DESC, LIST_CERTS_NAME, LIST_CERTS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 8, VALUE_OPT_LIST_ALL_PRIVKEYS,
+ /* equiv idx, value */ 8, VALUE_OPT_LIST_ALL_PRIVKEYS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LIST_ALL_PRIVKEYS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --list-all-privkeys */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LIST_ALL_PRIVKEYS_DESC, LIST_ALL_PRIVKEYS_NAME,
LIST_ALL_PRIVKEYS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 9, VALUE_OPT_LIST_ALL_TRUSTED,
+ /* equiv idx, value */ 9, VALUE_OPT_LIST_ALL_TRUSTED,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LIST_ALL_TRUSTED_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --list-all-trusted */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LIST_ALL_TRUSTED_DESC, LIST_ALL_TRUSTED_NAME,
LIST_ALL_TRUSTED_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 10, VALUE_OPT_INITIALIZE,
+ /* equiv idx, value */ 10, VALUE_OPT_INITIALIZE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ INITIALIZE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --initialize */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ INITIALIZE_DESC, INITIALIZE_NAME, INITIALIZE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 11, VALUE_OPT_WRITE,
+ /* equiv idx, value */ 11, VALUE_OPT_WRITE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ WRITE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --write */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ WRITE_DESC, WRITE_NAME, WRITE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 12, VALUE_OPT_DELETE,
+ /* equiv idx, value */ 12, VALUE_OPT_DELETE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DELETE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --delete */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ DELETE_DESC, DELETE_NAME, DELETE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 13, VALUE_OPT_GENERATE_RSA,
+ /* equiv idx, value */ 13, VALUE_OPT_GENERATE_RSA,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_RSA_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-rsa */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_RSA_DESC, GENERATE_RSA_NAME,
GENERATE_RSA_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 14, VALUE_OPT_GENERATE_DSA,
+ /* equiv idx, value */ 14, VALUE_OPT_GENERATE_DSA,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_DSA_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-dsa */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_DSA_DESC, GENERATE_DSA_NAME,
GENERATE_DSA_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 15, VALUE_OPT_GENERATE_ECC,
+ /* equiv idx, value */ 15, VALUE_OPT_GENERATE_ECC,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_ECC_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-ecc */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_ECC_DESC, GENERATE_ECC_NAME,
GENERATE_ECC_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 16, VALUE_OPT_LABEL,
+ /* equiv idx, value */ 16, VALUE_OPT_LABEL,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LABEL_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --label */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LABEL_DESC, LABEL_NAME, LABEL_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 17, VALUE_OPT_TRUSTED,
+ /* equiv idx, value */ 17, VALUE_OPT_TRUSTED,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ TRUSTED_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --trusted */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ TRUSTED_DESC, TRUSTED_NAME, TRUSTED_name,
+ /* disablement strs */ NOT_TRUSTED_name, NOT_TRUSTED_PFX },
+
+ { /* entry idx, value */ 18, VALUE_OPT_PRIVATE,
+ /* equiv idx, value */ 18, VALUE_OPT_PRIVATE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PRIVATE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --private */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PRIVATE_DESC, PRIVATE_NAME, PRIVATE_name,
+ /* disablement strs */ NOT_PRIVATE_name, NOT_PRIVATE_PFX },
+
+ { /* entry idx, value */ 19, VALUE_OPT_LOGIN,
+ /* equiv idx, value */ 19, VALUE_OPT_LOGIN,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOGIN_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --login */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LOGIN_DESC, LOGIN_NAME, LOGIN_name,
+ /* disablement strs */ NOT_LOGIN_name, NOT_LOGIN_PFX },
+
+ { /* entry idx, value */ 20, VALUE_OPT_DETAILED_URL,
+ /* equiv idx, value */ 20, VALUE_OPT_DETAILED_URL,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DETAILED_URL_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --detailed-url */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ DETAILED_URL_DESC, DETAILED_URL_NAME,
DETAILED_URL_name,
+ /* disablement strs */ NOT_DETAILED_URL_name, NOT_DETAILED_URL_PFX },
+
+ { /* entry idx, value */ 21, VALUE_OPT_SECRET_KEY,
+ /* equiv idx, value */ 21, VALUE_OPT_SECRET_KEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ SECRET_KEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --secret-key */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ SECRET_KEY_DESC, SECRET_KEY_NAME, SECRET_KEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 22, VALUE_OPT_LOAD_PRIVKEY,
+ /* equiv idx, value */ 22, VALUE_OPT_LOAD_PRIVKEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_PRIVKEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-privkey */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptLoad_Privkey,
+ /* desc, NAME, name */ LOAD_PRIVKEY_DESC, LOAD_PRIVKEY_NAME,
LOAD_PRIVKEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 23, VALUE_OPT_LOAD_PUBKEY,
+ /* equiv idx, value */ 23, VALUE_OPT_LOAD_PUBKEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_PUBKEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-pubkey */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptLoad_Pubkey,
+ /* desc, NAME, name */ LOAD_PUBKEY_DESC, LOAD_PUBKEY_NAME,
LOAD_PUBKEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 24, VALUE_OPT_LOAD_CERTIFICATE,
+ /* equiv idx, value */ 24, VALUE_OPT_LOAD_CERTIFICATE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LOAD_CERTIFICATE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --load-certificate */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptLoad_Certificate,
+ /* desc, NAME, name */ LOAD_CERTIFICATE_DESC, LOAD_CERTIFICATE_NAME,
LOAD_CERTIFICATE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 25, VALUE_OPT_PKCS8,
+ /* equiv idx, value */ 25, VALUE_OPT_PKCS8,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PKCS8_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pkcs8 */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PKCS8_DESC, PKCS8_NAME, PKCS8_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 26, VALUE_OPT_BITS,
+ /* equiv idx, value */ 26, VALUE_OPT_BITS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ BITS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --bits */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionNumericVal,
+ /* desc, NAME, name */ BITS_DESC, BITS_NAME, BITS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 27, VALUE_OPT_SEC_PARAM,
+ /* equiv idx, value */ 27, VALUE_OPT_SEC_PARAM,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ SEC_PARAM_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --sec-param */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ SEC_PARAM_DESC, SEC_PARAM_NAME, SEC_PARAM_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 28, VALUE_OPT_INDER,
+ /* equiv idx, value */ 28, VALUE_OPT_INDER,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ INDER_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --inder */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ INDER_DESC, INDER_NAME, INDER_name,
+ /* disablement strs */ NOT_INDER_name, NOT_INDER_PFX },
+
+ { /* entry idx, value */ 29, VALUE_OPT_INRAW,
+ /* equiv idx, value */ 29, VALUE_OPT_INRAW,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ INRAW_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --inraw */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptInraw,
+ /* desc, NAME, name */ INRAW_DESC, INRAW_NAME, INRAW_name,
+ /* disablement strs */ 0, 0 },
+
+ { /* entry idx, value */ 30, VALUE_OPT_PROVIDER,
+ /* equiv idx, value */ 30, VALUE_OPT_PROVIDER,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PROVIDER_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --provider */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptProvider,
+ /* desc, NAME, name */ PROVIDER_DESC, PROVIDER_NAME, PROVIDER_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VER_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ VER_PROC,
+ /* desc, NAME, name */ VER_DESC, NULL, VER_name,
+ /* disablement strs */ NULL, NULL },
+
+
+
+ { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doUsageOpt,
+ /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ MORE_HELP_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionPagedUsage,
+ /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
+ /* disablement strs */ NULL, NULL }
+};
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Define the p11tool Option Environment
+ */
+#define zPROGNAME (p11tool_opt_strs+2675)
+#define zUsageTitle (p11tool_opt_strs+2683)
+#define zRcName NULL
+#define apzHomeList NULL
+#define zBugsAddr (p11tool_opt_strs+2795)
+#define zExplain (p11tool_opt_strs+2814)
+#define zDetail (p11tool_opt_strs+2817)
+#define zFullVersion (p11tool_opt_strs+3073)
+/* extracted from optcode.tlib near line 350 */
+
+#if defined(ENABLE_NLS)
+# define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
+ static tOptionXlateProc translate_option_strings;
+#else
+# define OPTPROC_BASE OPTPROC_NONE
+# define translate_option_strings NULL
+#endif /* ENABLE_NLS */
+
+
+#define p11tool_full_usage (NULL)
+
+#define p11tool_short_usage (p11tool_opt_strs+3091)
+
+#endif /* not defined __doxygen__ */
+
+/*
+ * Create the static procedure(s) declared above.
+ */
+/**
+ * The callout function that invokes the optionUsage function.
+ *
+ * @param pOptions the AutoOpts option description structure
+ * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @noreturn
+ */
+static void
+doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
+{
+ optionUsage(&p11toolOptions, P11TOOL_EXIT_SUCCESS);
+ /* NOTREACHED */
+ (void)pOptDesc;
+ (void)pOptions;
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the debug option.
+ *
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0 , 9999 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the load-privkey option.
+ *
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptLoad_Privkey(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the load-pubkey option.
+ *
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptLoad_Pubkey(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the load-certificate option.
+ *
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptLoad_Certificate(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the inraw option.
+ *
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptInraw(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_INDER);
+ if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
+ USAGE(P11TOOL_EXIT_FAILURE);
+
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the provider option.
+ *
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptProvider(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+/* extracted from optmain.tlib near line 1113 */
+
+/**
+ * The directory containing the data associated with p11tool.
+ */
+#ifndef PKGDATADIR
+# define PKGDATADIR ""
+#endif
+
+/**
+ * Information about the person or institution that packaged p11tool
+ * for the current distribution.
+ */
+#ifndef WITH_PACKAGER
+# define p11tool_packager_info NULL
+#else
+static char const p11tool_packager_info[] =
+ "Packaged by " WITH_PACKAGER
+
+# ifdef WITH_PACKAGER_VERSION
+ " ("WITH_PACKAGER_VERSION")"
+# endif
+
+# ifdef WITH_PACKAGER_BUG_REPORTS
+ "\nReport p11tool bugs to " WITH_PACKAGER_BUG_REPORTS
+# endif
+ "\n";
+#endif
+#ifndef __doxygen__
+
+#endif /* __doxygen__ */
+/**
+ * The option definitions for p11tool. The one structure that
+ * binds them all.
+ */
+tOptions p11toolOptions = {
+ OPTIONS_STRUCT_VERSION,
+ 0, NULL, /* original argc + argv */
+ ( OPTPROC_BASE
+ + OPTPROC_ERRSTOP
+ + OPTPROC_SHORTOPT
+ + OPTPROC_LONGOPT
+ + OPTPROC_NO_REQ_OPT
+ + OPTPROC_NEGATIONS
+ + OPTPROC_REORDER
+ + OPTPROC_GNUUSAGE
+ + OPTPROC_MISUSE ),
+ 0, NULL, /* current option index, current option */
+ NULL, NULL, zPROGNAME,
+ zRcName, zCopyright, zLicenseDescrip,
+ zFullVersion, apzHomeList, zUsageTitle,
+ zExplain, zDetail, optDesc,
+ zBugsAddr, /* address to send bugs to */
+ NULL, NULL, /* extensions/saved state */
+ optionUsage, /* usage procedure */
+ translate_option_strings, /* translation procedure */
+ /*
+ * Indexes to special options
+ */
+ { INDEX_OPT_MORE_HELP, /* more-help option index */
+ NO_EQUIVALENT, /* save option index */
+ NO_EQUIVALENT, /* '-#' option index */
+ NO_EQUIVALENT /* index of default opt */
+ },
+ 34 /* full option count */, 31 /* user option count */,
+ p11tool_full_usage, p11tool_short_usage,
+ NULL, NULL,
+ PKGDATADIR, p11tool_packager_info
+};
+
+#if ENABLE_NLS
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <autoopts/usage-txt.h>
+
+static char* AO_gettext(char const* pz);
+static void coerce_it(void** s);
+
+/**
+ * AutoGen specific wrapper function for gettext.
+ * It relies on the macro _() to convert from English to the target
+ * language, then strdup-duplicates the result string.
+ *
+ * @param[in] pz the input text used as a lookup key.
+ * @returns the translated text (if there is one),
+ * or the original text (if not).
+ */
+static char *
+AO_gettext(char const* pz)
+{
+ char* pzRes;
+ if (pz == NULL)
+ return NULL;
+ pzRes = _(pz);
+ if (pzRes == pz)
+ return pzRes;
+ pzRes = strdup(pzRes);
+ if (pzRes == NULL) {
+ fputs(_("No memory for duping translated strings\n"), stderr);
+ exit(P11TOOL_EXIT_FAILURE);
+ }
+ return pzRes;
+}
+
+static void coerce_it(void** s) { *s = AO_gettext(*s);
+}
+
+/**
+ * Translate all the translatable strings in the p11toolOptions
+ * structure defined above. This is done only once.
+ */
+static void
+translate_option_strings(void)
+{
+ tOptions * const pOpt = &p11toolOptions;
+
+ /*
+ * Guard against re-translation. It won't work. The strings will have
+ * been changed by the first pass through this code. One shot only.
+ */
+ if (option_usage_text.field_ct != 0) {
+ /*
+ * Do the translations. The first pointer follows the field count
+ * field. The field count field is the size of a pointer.
+ */
+ tOptDesc * pOD = pOpt->pOptDesc;
+ char ** ppz = (char**)(void*)&(option_usage_text);
+ int ix = option_usage_text.field_ct;
+
+ do {
+ ppz++;
+ *ppz = AO_gettext(*ppz);
+ } while (--ix > 0);
+
+ coerce_it((void*)&(pOpt->pzCopyright));
+ coerce_it((void*)&(pOpt->pzCopyNotice));
+ coerce_it((void*)&(pOpt->pzFullVersion));
+ coerce_it((void*)&(pOpt->pzUsageTitle));
+ coerce_it((void*)&(pOpt->pzExplain));
+ coerce_it((void*)&(pOpt->pzDetail));
+ coerce_it((void*)&(pOpt->pzPackager));
+ coerce_it((void*)&(pOpt->pzShortUsage));
+ option_usage_text.field_ct = 0;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
+ coerce_it((void*)&(pOD->pzText));
+ }
+
+ if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
+ tOptDesc * pOD = pOpt->pOptDesc;
+ int ix;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
+ coerce_it((void*)&(pOD->pz_Name));
+ coerce_it((void*)&(pOD->pz_DisableName));
+ coerce_it((void*)&(pOD->pz_DisablePfx));
+ }
+ /* prevent re-translation */
+ p11toolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
+ }
+}
+
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+/* p11tool-args.c ends here */
diff --git a/src/p11tool-args.h b/src/p11tool-args.h
new file mode 100644
index 0000000..70f2ed5
--- /dev/null
+++ b/src/p11tool-args.h
@@ -0,0 +1,245 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (p11tool-args.h)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:30 PM by AutoGen 5.16
+ * From the definitions p11tool-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This header file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the p11tool author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The p11tool program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * p11tool is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * p11tool is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * This file contains the programmatic interface to the Automated
+ * Options generated for the p11tool program.
+ * These macros are documented in the AutoGen info file in the
+ * "AutoOpts" chapter. Please refer to that doc for usage help.
+ */
+#ifndef AUTOOPTS_P11TOOL_ARGS_H_GUARD
+#define AUTOOPTS_P11TOOL_ARGS_H_GUARD 1
+#include "config.h"
+#include <autoopts/options.h>
+
+/*
+ * Ensure that the library used for compiling this generated header is at
+ * least as new as the version current when the header template was released
+ * (not counting patch version increments). Also ensure that the oldest
+ * tolerable version is at least as old as what was current when the header
+ * template was released.
+ */
+#define AO_TEMPLATE_VERSION 147460
+#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
+ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
+# error option template version mismatches autoopts/options.h header
+ Choke Me.
+#endif
+
+/*
+ * Enumeration of each option:
+ */
+typedef enum {
+ INDEX_OPT_DEBUG = 0,
+ INDEX_OPT_OUTFILE = 1,
+ INDEX_OPT_LIST_TOKENS = 2,
+ INDEX_OPT_EXPORT = 3,
+ INDEX_OPT_LIST_MECHANISMS = 4,
+ INDEX_OPT_LIST_ALL = 5,
+ INDEX_OPT_LIST_ALL_CERTS = 6,
+ INDEX_OPT_LIST_CERTS = 7,
+ INDEX_OPT_LIST_ALL_PRIVKEYS = 8,
+ INDEX_OPT_LIST_ALL_TRUSTED = 9,
+ INDEX_OPT_INITIALIZE = 10,
+ INDEX_OPT_WRITE = 11,
+ INDEX_OPT_DELETE = 12,
+ INDEX_OPT_GENERATE_RSA = 13,
+ INDEX_OPT_GENERATE_DSA = 14,
+ INDEX_OPT_GENERATE_ECC = 15,
+ INDEX_OPT_LABEL = 16,
+ INDEX_OPT_TRUSTED = 17,
+ INDEX_OPT_PRIVATE = 18,
+ INDEX_OPT_LOGIN = 19,
+ INDEX_OPT_DETAILED_URL = 20,
+ INDEX_OPT_SECRET_KEY = 21,
+ INDEX_OPT_LOAD_PRIVKEY = 22,
+ INDEX_OPT_LOAD_PUBKEY = 23,
+ INDEX_OPT_LOAD_CERTIFICATE = 24,
+ INDEX_OPT_PKCS8 = 25,
+ INDEX_OPT_BITS = 26,
+ INDEX_OPT_SEC_PARAM = 27,
+ INDEX_OPT_INDER = 28,
+ INDEX_OPT_INRAW = 29,
+ INDEX_OPT_PROVIDER = 30,
+ INDEX_OPT_VERSION = 31,
+ INDEX_OPT_HELP = 32,
+ INDEX_OPT_MORE_HELP = 33
+} teOptIndex;
+
+#define OPTION_CT 34
+#define P11TOOL_VERSION "@VERSION@"
+#define P11TOOL_FULL_VERSION "p11tool @VERSION@"
+
+/*
+ * Interface defines for all options. Replace "n" with the UPPER_CASED
+ * option name (as in the teOptIndex enumeration above).
+ * e.g. HAVE_OPT(DEBUG)
+ */
+#define DESC(n) (p11toolOptions.pOptDesc[INDEX_OPT_## n])
+#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+#define OPT_ARG(n) (DESC(n).optArg.argString)
+#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+#define COUNT_OPT(n) (DESC(n).optOccCt)
+#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+#define CLEAR_OPT(n) STMTS( \
+ DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
+ if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
+ DESC(n).fOptState |= OPTST_DISABLED; \
+ DESC(n).optCookie = NULL )
+
+/* * * * * *
+ *
+ * Enumeration of p11tool exit codes
+ */
+typedef enum {
+ P11TOOL_EXIT_SUCCESS = 0,
+ P11TOOL_EXIT_FAILURE = 1,
+ P11TOOL_EXIT_LIBOPTS_FAILURE = 70
+} p11tool_exit_code_t;
+/* * * * * *
+ *
+ * Interface defines for specific options.
+ */
+#define VALUE_OPT_DEBUG 'd'
+
+#define OPT_VALUE_DEBUG (DESC(DEBUG).optArg.argInt)
+#define VALUE_OPT_OUTFILE 1
+#define VALUE_OPT_LIST_TOKENS 2
+#define VALUE_OPT_EXPORT 3
+#define VALUE_OPT_LIST_MECHANISMS 4
+#define VALUE_OPT_LIST_ALL 5
+#define VALUE_OPT_LIST_ALL_CERTS 6
+#define VALUE_OPT_LIST_CERTS 7
+#define VALUE_OPT_LIST_ALL_PRIVKEYS 8
+#define VALUE_OPT_LIST_ALL_TRUSTED 9
+#define VALUE_OPT_INITIALIZE 10
+#define VALUE_OPT_WRITE 11
+#define VALUE_OPT_DELETE 12
+#define VALUE_OPT_GENERATE_RSA 13
+#define VALUE_OPT_GENERATE_DSA 14
+#define VALUE_OPT_GENERATE_ECC 15
+#define VALUE_OPT_LABEL 16
+#define VALUE_OPT_TRUSTED 17
+#define VALUE_OPT_PRIVATE 18
+#define VALUE_OPT_LOGIN 19
+#define VALUE_OPT_DETAILED_URL 20
+#define VALUE_OPT_SECRET_KEY 21
+#define VALUE_OPT_LOAD_PRIVKEY 22
+#define VALUE_OPT_LOAD_PUBKEY 23
+#define VALUE_OPT_LOAD_CERTIFICATE 24
+#define VALUE_OPT_PKCS8 '8'
+#define VALUE_OPT_BITS 26
+
+#define OPT_VALUE_BITS (DESC(BITS).optArg.argInt)
+#define VALUE_OPT_SEC_PARAM 27
+#define VALUE_OPT_INDER 28
+#define VALUE_OPT_INRAW 29
+#define VALUE_OPT_PROVIDER 30
+#define VALUE_OPT_HELP 'h'
+#define VALUE_OPT_MORE_HELP '!'
+#define VALUE_OPT_VERSION 'v'
+/*
+ * Interface defines not associated with particular options
+ */
+#define ERRSKIP_OPTERR STMTS(p11toolOptions.fOptSet &= ~OPTPROC_ERRSTOP)
+#define ERRSTOP_OPTERR STMTS(p11toolOptions.fOptSet |= OPTPROC_ERRSTOP)
+#define RESTART_OPT(n) STMTS( \
+ p11toolOptions.curOptIdx = (n); \
+ p11toolOptions.pzCurOpt = NULL)
+#define START_OPT RESTART_OPT(1)
+#define USAGE(c) (*p11toolOptions.pUsageProc)(&p11toolOptions, c)
+/* extracted from opthead.tlib near line 484 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * global exported definitions
+ */
+#include <gettext.h>
+
+
+/* * * * * *
+ *
+ * Declare the p11tool option descriptor.
+ */
+extern tOptions p11toolOptions;
+
+#if defined(ENABLE_NLS)
+# ifndef _
+# include <stdio.h>
+static inline char* aoGetsText(char const* pz) {
+ if (pz == NULL) return NULL;
+ return (char*)gettext(pz);
+}
+# define _(s) aoGetsText(s)
+# endif /* _() */
+
+# define OPT_NO_XLAT_CFG_NAMES STMTS(p11toolOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT_CFG;)
+# define OPT_NO_XLAT_OPT_NAMES STMTS(p11toolOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
+
+# define OPT_XLAT_CFG_NAMES STMTS(p11toolOptions.fOptSet &= \
+ ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
+# define OPT_XLAT_OPT_NAMES STMTS(p11toolOptions.fOptSet &= \
+ ~OPTPROC_NXLAT_OPT;)
+
+#else /* ENABLE_NLS */
+# define OPT_NO_XLAT_CFG_NAMES
+# define OPT_NO_XLAT_OPT_NAMES
+
+# define OPT_XLAT_CFG_NAMES
+# define OPT_XLAT_OPT_NAMES
+
+# ifndef _
+# define _(_s) _s
+# endif
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AUTOOPTS_P11TOOL_ARGS_H_GUARD */
+/* p11tool-args.h ends here */
diff --git a/src/libopts/genshell.c b/src/psk-args.c
similarity index 50%
copy from src/libopts/genshell.c
copy to src/psk-args.c
index 16ca245..2d732c5 100644
--- a/src/libopts/genshell.c
+++ b/src/psk-args.c
@@ -1,36 +1,36 @@
/* -*- buffer-read-only: t -*- vi: set ro:
*
- * DO NOT EDIT THIS FILE (genshell.c)
+ * DO NOT EDIT THIS FILE (psk-args.c)
*
- * It has been AutoGen-ed May 6, 2012 at 04:20:59 PM by AutoGen 5.16pre36
- * From the definitions genshell.def
+ * It has been AutoGen-ed May 9, 2012 at 08:05:26 PM by AutoGen 5.16
+ * From the definitions psk-args.def
* and the template file options
*
* Generated from AutoOpts 36:4:11 templates.
*
* AutoOpts is a copyrighted work. This source file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
- * by the genshellopt author or copyright holder. AutoOpts is
+ * by the psktool author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
- * The genshellopt program is copyrighted and licensed
+ * The psktool program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1999-2012 Bruce Korb, all rights reserved.
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the
* GNU General Public License, version 3 or later
* <http://gnu.org/licenses/gpl.html>
*
- * genshellopt is free software: you can redistribute it and/or modify it
+ * psktool is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
- * genshellopt is distributed in the hope that it will be useful, but
+ * psktool is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
@@ -41,12 +41,13 @@
#ifndef __doxygen__
#define OPTION_CODE_COMPILE 1
-#include "genshell.h"
+#include "psk-args.h"
#include <sys/types.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
+#include <errno.h>
#ifdef __cplusplus
extern "C" {
@@ -55,90 +56,108 @@ extern FILE * option_usage_fp;
/* TRANSLATORS: choose the translation for option names wisely because you
cannot ever change your mind. */
-#define zCopyright (genshellopt_opt_strs+0)
-#define zLicenseDescrip (genshellopt_opt_strs+260)
+#define zCopyright (psktool_opt_strs+0)
+#define zLicenseDescrip (psktool_opt_strs+278)
-extern tUsageProc genshelloptUsage;
#ifndef NULL
# define NULL 0
#endif
/*
- * genshellopt option static const strings
+ * psktool option static const strings
*/
-static char const genshellopt_opt_strs[1690] =
-/* 0 */ "genshellopt 1\n"
- "Copyright (C) 1999-2012 Bruce Korb, all rights reserved.\n"
+static char const psktool_opt_strs[1505] =
+/* 0 */ "psktool @address@hidden"
+ "Copyright (C) 2000-2012 Free Software Foundation, all rights
reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the\n"
"GNU General Public License, version 3 or later\n"
" <http://gnu.org/licenses/gpl.html>\n\0"
-/* 260 */ "genshellopt is free software: you can redistribute it and/or
modify it\n"
- "under the terms of the GNU General Public License as published by
the Free\n"
+/* 278 */ "psktool is free software: you can redistribute it and/or modify
it under\n"
+ "the terms of the GNU General Public License as published by the
Free\n"
"Software Foundation, either version 3 of the License, or (at your
option)\n"
"any later version.\n\n"
- "genshellopt is distributed in the hope that it will be useful,
but WITHOUT\n"
- "ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or\n"
- "FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for\n"
- "more details.\n\n"
+ "psktool is distributed in the hope that it will be useful, but
WITHOUT ANY\n"
+ "WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS\n"
+ "FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more\n"
+ "details.\n\n"
"You should have received a copy of the GNU General Public License
along\n"
"with this program. If not, see
<http://www.gnu.org/licenses/>.\n\0"
-/* 871 */ "Output Script File\0"
-/* 890 */ "SCRIPT\0"
-/* 897 */ "script\0"
-/* 904 */ "Shell name (follows \"#!\" magic)\0"
-/* 936 */ "SHELL\0"
-/* 942 */ "no-shell\0"
-/* 951 */ "no\0"
-/* 954 */ "Display extended usage information and exit\0"
-/* 998 */ "help\0"
-/* 1003 */ "Extended usage information passed thru pager\0"
-/* 1048 */ "more-help\0"
-/* 1058 */ "Output version information and exit\0"
-/* 1094 */ "version\0"
-/* 1102 */ "GENSHELLOPT\0"
-/* 1114 */ "genshellopt - Generate Shell Option Processing Script - Ver. 1\n"
+/* 881 */ "Enable debugging.\0"
+/* 899 */ "DEBUG\0"
+/* 905 */ "debug\0"
+/* 911 */ "specify the key size in bytes\0"
+/* 941 */ "KEYSIZE\0"
+/* 949 */ "keysize\0"
+/* 957 */ "specify a username\0"
+/* 976 */ "USERNAME\0"
+/* 985 */ "username\0"
+/* 994 */ "specify a password file.\0"
+/* 1019 */ "PASSWD\0"
+/* 1026 */ "passwd\0"
+/* 1033 */ "Display extended usage information and exit\0"
+/* 1077 */ "help\0"
+/* 1082 */ "Extended usage information passed thru pager\0"
+/* 1127 */ "more-help\0"
+/* 1137 */ "Output version information and exit\0"
+/* 1173 */ "version\0"
+/* 1181 */ "PSKTOOL\0"
+/* 1189 */ "psktool - GnuTLS PSK tool - Ver. @address@hidden"
"USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
-/* 1235 */ "address@hidden"
-/* 1271 */ "\n"
- "Note that ``shell'' is only useful if the output file does not
already\n"
- "exist. If it does, then the shell name and optional first
argument will be\n"
- "extracted from the script file.\n\0"
-/* 1452 */ "\n"
- "If the script file already exists and contains Automated Option
Processing\n"
- "text, the second line of the file through the ending tag will be
replaced\n"
- "by the newly generated text. The first ``#!'' line will be
regenerated.\n\0"
-/* 1676 */ "genshellopt 1";
+/* 1290 */ "address@hidden"
+/* 1309 */ "\n\n\0"
+/* 1312 */ "\n"
+ "Program that generates random keys for use with TLS-PSK. The
keys are\n"
+ "stored in hexadecimal format in a key file.\n\0"
+/* 1429 */ "psktool @address@hidden"
+/* 1447 */ "psktool [options]\n"
+ "psktool --help for usage instructions.\n";
/*
- * script option description:
+ * debug option description:
*/
-#define SCRIPT_DESC (genshellopt_opt_strs+871)
-#define SCRIPT_NAME (genshellopt_opt_strs+890)
-#define SCRIPT_name (genshellopt_opt_strs+897)
-#define SCRIPT_FLAGS (OPTST_DISABLED \
+#define DEBUG_DESC (psktool_opt_strs+881)
+#define DEBUG_NAME (psktool_opt_strs+899)
+#define DEBUG_name (psktool_opt_strs+905)
+#define DEBUG_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * keysize option description:
+ */
+#define KEYSIZE_DESC (psktool_opt_strs+911)
+#define KEYSIZE_NAME (psktool_opt_strs+941)
+#define KEYSIZE_name (psktool_opt_strs+949)
+#define KEYSIZE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * username option description:
+ */
+#define USERNAME_DESC (psktool_opt_strs+957)
+#define USERNAME_NAME (psktool_opt_strs+976)
+#define USERNAME_name (psktool_opt_strs+985)
+#define USERNAME_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/*
- * shell option description:
+ * passwd option description:
*/
-#define SHELL_DESC (genshellopt_opt_strs+904)
-#define SHELL_NAME (genshellopt_opt_strs+936)
-#define NOT_SHELL_name (genshellopt_opt_strs+942)
-#define NOT_SHELL_PFX (genshellopt_opt_strs+951)
-#define SHELL_name (NOT_SHELL_name + 3)
-#define SHELL_FLAGS (OPTST_INITENABLED \
+#define PASSWD_DESC (psktool_opt_strs+994)
+#define PASSWD_NAME (psktool_opt_strs+1019)
+#define PASSWD_name (psktool_opt_strs+1026)
+#define PASSWD_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/*
* Help/More_Help/Version option descriptions:
*/
-#define HELP_DESC (genshellopt_opt_strs+954)
-#define HELP_name (genshellopt_opt_strs+998)
+#define HELP_DESC (psktool_opt_strs+1033)
+#define HELP_name (psktool_opt_strs+1077)
#ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC (genshellopt_opt_strs+1003)
-#define MORE_HELP_name (genshellopt_opt_strs+1048)
+#define MORE_HELP_DESC (psktool_opt_strs+1082)
+#define MORE_HELP_name (psktool_opt_strs+1127)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC NULL
@@ -151,8 +170,8 @@ static char const genshellopt_opt_strs[1690] =
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
-#define VER_DESC (genshellopt_opt_strs+1058)
-#define VER_name (genshellopt_opt_strs+1094)
+#define VER_DESC (psktool_opt_strs+1137)
+#define VER_name (psktool_opt_strs+1173)
/*
* Declare option callback procedures
*/
@@ -162,42 +181,66 @@ extern tOptProc
optionStackArg, optionTimeDate, optionTimeVal,
optionUnstackArg, optionVendorOption;
static tOptProc
- doUsageOpt;
+ doOptDebug, doOptKeysize, doUsageOpt;
#define VER_PROC optionPrintVersion
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
- * Define the genshellopt Option Descriptions.
- * This is an array of GENSHELL_OPTION_CT entries, one for each
- * option that the genshellopt program responds to.
+ * Define the psktool Option Descriptions.
+ * This is an array of OPTION_CT entries, one for each
+ * option that the psktool program responds to.
*/
-static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
- { /* entry idx, value */ 0, VALUE_GENSHELL_OPT_SCRIPT,
- /* equiv idx, value */ 0, VALUE_GENSHELL_OPT_SCRIPT,
+static tOptDesc optDesc[OPTION_CT] = {
+ { /* entry idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equiv idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DEBUG_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --debug */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptDebug,
+ /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 1, VALUE_OPT_KEYSIZE,
+ /* equiv idx, value */ 1, VALUE_OPT_KEYSIZE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
- /* opt state flags */ SCRIPT_FLAGS, 0,
- /* last opt argumnt */ { NULL }, /* --script */
+ /* opt state flags */ KEYSIZE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --keysize */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptKeysize,
+ /* desc, NAME, name */ KEYSIZE_DESC, KEYSIZE_NAME, KEYSIZE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 2, VALUE_OPT_USERNAME,
+ /* equiv idx, value */ 2, VALUE_OPT_USERNAME,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ USERNAME_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --username */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
- /* desc, NAME, name */ SCRIPT_DESC, SCRIPT_NAME, SCRIPT_name,
+ /* desc, NAME, name */ USERNAME_DESC, USERNAME_NAME, USERNAME_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 1, VALUE_GENSHELL_OPT_SHELL,
- /* equiv idx, value */ 1, VALUE_GENSHELL_OPT_SHELL,
+ { /* entry idx, value */ 3, VALUE_OPT_PASSWD,
+ /* equiv idx, value */ 3, VALUE_OPT_PASSWD,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
- /* opt state flags */ SHELL_FLAGS, 0,
- /* last opt argumnt */ { NULL }, /* --shell */
+ /* opt state flags */ PASSWD_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --passwd */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
- /* desc, NAME, name */ SHELL_DESC, SHELL_NAME, SHELL_name,
- /* disablement strs */ NOT_SHELL_name, NOT_SHELL_PFX },
+ /* desc, NAME, name */ PASSWD_DESC, PASSWD_NAME, PASSWD_name,
+ /* disablement strs */ NULL, NULL },
- { /* entry idx, value */ INDEX_GENSHELL_OPT_VERSION,
VALUE_GENSHELL_OPT_VERSION,
- /* equiv idx value */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_VERSION,
+ { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ VER_FLAGS, 0,
@@ -210,8 +253,8 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
- { /* entry idx, value */ INDEX_GENSHELL_OPT_HELP, VALUE_GENSHELL_OPT_HELP,
- /* equiv idx value */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_HELP,
+ { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0,
@@ -222,8 +265,8 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
/* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ INDEX_GENSHELL_OPT_MORE_HELP,
VALUE_GENSHELL_OPT_MORE_HELP,
- /* equiv idx value */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_MORE_HELP,
+ { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MORE_HELP_FLAGS, 0,
@@ -238,20 +281,20 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
- * Define the genshellopt Option Environment
+ * Define the psktool Option Environment
*/
-#define zPROGNAME (genshellopt_opt_strs+1102)
-#define zUsageTitle (genshellopt_opt_strs+1114)
+#define zPROGNAME (psktool_opt_strs+1181)
+#define zUsageTitle (psktool_opt_strs+1189)
#define zRcName NULL
#define apzHomeList NULL
-#define zBugsAddr (genshellopt_opt_strs+1235)
-#define zExplain (genshellopt_opt_strs+1271)
-#define zDetail (genshellopt_opt_strs+1452)
-#define zFullVersion (genshellopt_opt_strs+1676)
+#define zBugsAddr (psktool_opt_strs+1290)
+#define zExplain (psktool_opt_strs+1309)
+#define zDetail (psktool_opt_strs+1312)
+#define zFullVersion (psktool_opt_strs+1429)
/* extracted from optcode.tlib near line 350 */
#if defined(ENABLE_NLS)
-# define OPTPROC_BASE OPTPROC_TRANSLATE
+# define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
static tOptionXlateProc translate_option_strings;
#else
# define OPTPROC_BASE OPTPROC_NONE
@@ -259,9 +302,9 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
#endif /* ENABLE_NLS */
-#define genshellopt_full_usage (NULL)
+#define psktool_full_usage (NULL)
-#define genshellopt_short_usage (NULL)
+#define psktool_short_usage (psktool_opt_strs+1447)
#endif /* not defined __doxygen__ */
@@ -269,7 +312,7 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
* Create the static procedure(s) declared above.
*/
/**
- * The callout function that invokes the genshelloptUsage function.
+ * The callout function that invokes the optionUsage function.
*
* @param pOptions the AutoOpts option description structure
* @param pOptDesc the descriptor for the "help" (usage) option.
@@ -278,28 +321,100 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
static void
doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
{
- genshelloptUsage(&genshelloptOptions, GENSHELLOPT_EXIT_SUCCESS);
+ optionUsage(&psktoolOptions, PSKTOOL_EXIT_SUCCESS);
/* NOTREACHED */
(void)pOptDesc;
(void)pOptions;
}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the debug option.
+ *
+ * @param pOptions the psktool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0 , 9999 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the keysize option.
+ *
+ * @param pOptions the psktool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptKeysize(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0 , 512 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
/* extracted from optmain.tlib near line 1113 */
/**
- * The directory containing the data associated with genshellopt.
+ * The directory containing the data associated with psktool.
*/
#ifndef PKGDATADIR
# define PKGDATADIR ""
#endif
/**
- * Information about the person or institution that packaged genshellopt
+ * Information about the person or institution that packaged psktool
* for the current distribution.
*/
#ifndef WITH_PACKAGER
-# define genshellopt_packager_info NULL
+# define psktool_packager_info NULL
#else
-static char const genshellopt_packager_info[] =
+static char const psktool_packager_info[] =
"Packaged by " WITH_PACKAGER
# ifdef WITH_PACKAGER_VERSION
@@ -307,7 +422,7 @@ static char const genshellopt_packager_info[] =
# endif
# ifdef WITH_PACKAGER_BUG_REPORTS
- "\nReport genshellopt bugs to " WITH_PACKAGER_BUG_REPORTS
+ "\nReport psktool bugs to " WITH_PACKAGER_BUG_REPORTS
# endif
"\n";
#endif
@@ -315,10 +430,10 @@ static char const genshellopt_packager_info[] =
#endif /* __doxygen__ */
/**
- * The option definitions for genshellopt. The one structure that
+ * The option definitions for psktool. The one structure that
* binds them all.
*/
-tOptions genshelloptOptions = {
+tOptions psktoolOptions = {
OPTIONS_STRUCT_VERSION,
0, NULL, /* original argc + argv */
( OPTPROC_BASE
@@ -326,8 +441,9 @@ tOptions genshelloptOptions = {
+ OPTPROC_SHORTOPT
+ OPTPROC_LONGOPT
+ OPTPROC_NO_REQ_OPT
- + OPTPROC_NEGATIONS
- + OPTPROC_NO_ARGS ),
+ + OPTPROC_NO_ARGS
+ + OPTPROC_GNUUSAGE
+ + OPTPROC_MISUSE ),
0, NULL, /* current option index, current option */
NULL, NULL, zPROGNAME,
zRcName, zCopyright, zLicenseDescrip,
@@ -335,20 +451,20 @@ tOptions genshelloptOptions = {
zExplain, zDetail, optDesc,
zBugsAddr, /* address to send bugs to */
NULL, NULL, /* extensions/saved state */
- genshelloptUsage, /* usage procedure */
+ optionUsage, /* usage procedure */
translate_option_strings, /* translation procedure */
/*
* Indexes to special options
*/
- { INDEX_GENSHELL_OPT_MORE_HELP, /* more-help option index */
+ { INDEX_OPT_MORE_HELP, /* more-help option index */
NO_EQUIVALENT, /* save option index */
NO_EQUIVALENT, /* '-#' option index */
NO_EQUIVALENT /* index of default opt */
},
- 5 /* full option count */, 2 /* user option count */,
- genshellopt_full_usage, genshellopt_short_usage,
+ 7 /* full option count */, 4 /* user option count */,
+ psktool_full_usage, psktool_short_usage,
NULL, NULL,
- PKGDATADIR, genshellopt_packager_info
+ PKGDATADIR, psktool_packager_info
};
#if ENABLE_NLS
@@ -382,7 +498,7 @@ AO_gettext(char const* pz)
pzRes = strdup(pzRes);
if (pzRes == NULL) {
fputs(_("No memory for duping translated strings\n"), stderr);
- exit(GENSHELLOPT_EXIT_FAILURE);
+ exit(PSKTOOL_EXIT_FAILURE);
}
return pzRes;
}
@@ -391,13 +507,13 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
}
/**
- * Translate all the translatable strings in the genshelloptOptions
+ * Translate all the translatable strings in the psktoolOptions
* structure defined above. This is done only once.
*/
static void
translate_option_strings(void)
{
- tOptions * const pOpt = &genshelloptOptions;
+ tOptions * const pOpt = &psktoolOptions;
/*
* Guard against re-translation. It won't work. The strings will have
@@ -424,6 +540,7 @@ translate_option_strings(void)
coerce_it((void*)&(pOpt->pzExplain));
coerce_it((void*)&(pOpt->pzDetail));
coerce_it((void*)&(pOpt->pzPackager));
+ coerce_it((void*)&(pOpt->pzShortUsage));
option_usage_text.field_ct = 0;
for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
@@ -440,7 +557,7 @@ translate_option_strings(void)
coerce_it((void*)&(pOD->pz_DisablePfx));
}
/* prevent re-translation */
- genshelloptOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG |
OPTPROC_NXLAT_OPT;
+ psktoolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
}
}
@@ -449,4 +566,4 @@ translate_option_strings(void)
#ifdef __cplusplus
}
#endif
-/* genshell.c ends here */
+/* psk-args.c ends here */
diff --git a/src/psk-args.h b/src/psk-args.h
new file mode 100644
index 0000000..ea11d63
--- /dev/null
+++ b/src/psk-args.h
@@ -0,0 +1,191 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (psk-args.h)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:26 PM by AutoGen 5.16
+ * From the definitions psk-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This header file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the psktool author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The psktool program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * psktool is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * psktool is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * This file contains the programmatic interface to the Automated
+ * Options generated for the psktool program.
+ * These macros are documented in the AutoGen info file in the
+ * "AutoOpts" chapter. Please refer to that doc for usage help.
+ */
+#ifndef AUTOOPTS_PSK_ARGS_H_GUARD
+#define AUTOOPTS_PSK_ARGS_H_GUARD 1
+#include "config.h"
+#include <autoopts/options.h>
+
+/*
+ * Ensure that the library used for compiling this generated header is at
+ * least as new as the version current when the header template was released
+ * (not counting patch version increments). Also ensure that the oldest
+ * tolerable version is at least as old as what was current when the header
+ * template was released.
+ */
+#define AO_TEMPLATE_VERSION 147460
+#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
+ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
+# error option template version mismatches autoopts/options.h header
+ Choke Me.
+#endif
+
+/*
+ * Enumeration of each option:
+ */
+typedef enum {
+ INDEX_OPT_DEBUG = 0,
+ INDEX_OPT_KEYSIZE = 1,
+ INDEX_OPT_USERNAME = 2,
+ INDEX_OPT_PASSWD = 3,
+ INDEX_OPT_VERSION = 4,
+ INDEX_OPT_HELP = 5,
+ INDEX_OPT_MORE_HELP = 6
+} teOptIndex;
+
+#define OPTION_CT 7
+#define PSKTOOL_VERSION "@VERSION@"
+#define PSKTOOL_FULL_VERSION "psktool @VERSION@"
+
+/*
+ * Interface defines for all options. Replace "n" with the UPPER_CASED
+ * option name (as in the teOptIndex enumeration above).
+ * e.g. HAVE_OPT(DEBUG)
+ */
+#define DESC(n) (psktoolOptions.pOptDesc[INDEX_OPT_## n])
+#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+#define OPT_ARG(n) (DESC(n).optArg.argString)
+#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+#define COUNT_OPT(n) (DESC(n).optOccCt)
+#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+#define CLEAR_OPT(n) STMTS( \
+ DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
+ if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
+ DESC(n).fOptState |= OPTST_DISABLED; \
+ DESC(n).optCookie = NULL )
+
+/* * * * * *
+ *
+ * Enumeration of psktool exit codes
+ */
+typedef enum {
+ PSKTOOL_EXIT_SUCCESS = 0,
+ PSKTOOL_EXIT_FAILURE = 1,
+ PSKTOOL_EXIT_LIBOPTS_FAILURE = 70
+} psktool_exit_code_t;
+/* * * * * *
+ *
+ * Interface defines for specific options.
+ */
+#define VALUE_OPT_DEBUG 'd'
+
+#define OPT_VALUE_DEBUG (DESC(DEBUG).optArg.argInt)
+#define VALUE_OPT_KEYSIZE 's'
+
+#define OPT_VALUE_KEYSIZE (DESC(KEYSIZE).optArg.argInt)
+#define VALUE_OPT_USERNAME 'u'
+#define VALUE_OPT_PASSWD 'p'
+#define VALUE_OPT_HELP 'h'
+#define VALUE_OPT_MORE_HELP '!'
+#define VALUE_OPT_VERSION 'v'
+/*
+ * Interface defines not associated with particular options
+ */
+#define ERRSKIP_OPTERR STMTS(psktoolOptions.fOptSet &= ~OPTPROC_ERRSTOP)
+#define ERRSTOP_OPTERR STMTS(psktoolOptions.fOptSet |= OPTPROC_ERRSTOP)
+#define RESTART_OPT(n) STMTS( \
+ psktoolOptions.curOptIdx = (n); \
+ psktoolOptions.pzCurOpt = NULL)
+#define START_OPT RESTART_OPT(1)
+#define USAGE(c) (*psktoolOptions.pUsageProc)(&psktoolOptions, c)
+/* extracted from opthead.tlib near line 484 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * global exported definitions
+ */
+#include <gettext.h>
+
+
+/* * * * * *
+ *
+ * Declare the psktool option descriptor.
+ */
+extern tOptions psktoolOptions;
+
+#if defined(ENABLE_NLS)
+# ifndef _
+# include <stdio.h>
+static inline char* aoGetsText(char const* pz) {
+ if (pz == NULL) return NULL;
+ return (char*)gettext(pz);
+}
+# define _(s) aoGetsText(s)
+# endif /* _() */
+
+# define OPT_NO_XLAT_CFG_NAMES STMTS(psktoolOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT_CFG;)
+# define OPT_NO_XLAT_OPT_NAMES STMTS(psktoolOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
+
+# define OPT_XLAT_CFG_NAMES STMTS(psktoolOptions.fOptSet &= \
+ ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
+# define OPT_XLAT_OPT_NAMES STMTS(psktoolOptions.fOptSet &= \
+ ~OPTPROC_NXLAT_OPT;)
+
+#else /* ENABLE_NLS */
+# define OPT_NO_XLAT_CFG_NAMES
+# define OPT_NO_XLAT_OPT_NAMES
+
+# define OPT_XLAT_CFG_NAMES
+# define OPT_XLAT_OPT_NAMES
+
+# ifndef _
+# define _(_s) _s
+# endif
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AUTOOPTS_PSK_ARGS_H_GUARD */
+/* psk-args.h ends here */
diff --git a/src/serv-args.c b/src/serv-args.c
new file mode 100644
index 0000000..ce71863
--- /dev/null
+++ b/src/serv-args.c
@@ -0,0 +1,1398 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (serv-args.c)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:24 PM by AutoGen 5.16
+ * From the definitions serv-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This source file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the gnutls-serv author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The gnutls-serv program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * gnutls-serv is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * gnutls-serv is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __doxygen__
+#define OPTION_CODE_COMPILE 1
+#include "serv-args.h"
+#include <sys/types.h>
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern FILE * option_usage_fp;
+
+/* TRANSLATORS: choose the translation for option names wisely because you
+ cannot ever change your mind. */
+#define zCopyright (gnutls_serv_opt_strs+0)
+#define zLicenseDescrip (gnutls_serv_opt_strs+282)
+
+
+#ifndef NULL
+# define NULL 0
+#endif
+
+/*
+ * gnutls-serv option static const strings
+ */
+static char const gnutls_serv_opt_strs[2947] =
+/* 0 */ "gnutls-serv @address@hidden"
+ "Copyright (C) 2000-2012 Free Software Foundation, all rights
reserved.\n"
+ "This is free software. It is licensed for use, modification and\n"
+ "redistribution under the terms of the\n"
+ "GNU General Public License, version 3 or later\n"
+ " <http://gnu.org/licenses/gpl.html>\n\0"
+/* 282 */ "gnutls-serv is free software: you can redistribute it and/or
modify it\n"
+ "under the terms of the GNU General Public License as published by
the Free\n"
+ "Software Foundation, either version 3 of the License, or (at your
option)\n"
+ "any later version.\n\n"
+ "gnutls-serv is distributed in the hope that it will be useful,
but WITHOUT\n"
+ "ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or\n"
+ "FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for\n"
+ "more details.\n\n"
+ "You should have received a copy of the GNU General Public License
along\n"
+ "with this program. If not, see
<http://www.gnu.org/licenses/>.\n\0"
+/* 893 */ "Enable debugging.\0"
+/* 911 */ "DEBUG\0"
+/* 917 */ "debug\0"
+/* 923 */ "Don't accept session tickets\0"
+/* 952 */ "NOTICKET\0"
+/* 961 */ "noticket\0"
+/* 970 */ "Generate Diffie-Hellman and RSA-export parameters\0"
+/* 1020 */ "GENERATE\0"
+/* 1029 */ "generate\0"
+/* 1038 */ "Suppress some messages\0"
+/* 1061 */ "QUIET\0"
+/* 1067 */ "quiet\0"
+/* 1073 */ "Do not use a resumption database\0"
+/* 1106 */ "NODB\0"
+/* 1111 */ "nodb\0"
+/* 1116 */ "Act as an HTTP server\0"
+/* 1138 */ "HTTP\0"
+/* 1143 */ "http\0"
+/* 1148 */ "Act as an Echo server\0"
+/* 1170 */ "ECHO\0"
+/* 1175 */ "echo\0"
+/* 1180 */ "Use DTLS (datagram TLS) over UDP\0"
+/* 1213 */ "UDP\0"
+/* 1217 */ "udp\0"
+/* 1221 */ "Set MTU for datagram TLS\0"
+/* 1246 */ "MTU\0"
+/* 1250 */ "mtu\0"
+/* 1254 */ "Do not request a client certificate\0"
+/* 1290 */ "DISABLE_CLIENT_CERT\0"
+/* 1310 */ "disable-client-cert\0"
+/* 1330 */ "Require a client certificate\0"
+/* 1359 */ "REQUIRE_CLIENT_CERT\0"
+/* 1379 */ "require-client-cert\0"
+/* 1399 */ "Use DER format for certificates to read from\0"
+/* 1444 */ "X509FMTDER\0"
+/* 1455 */ "x509fmtder\0"
+/* 1466 */ "Priorities string\0"
+/* 1484 */ "PRIORITY\0"
+/* 1493 */ "priority\0"
+/* 1502 */ "DH params file to use\0"
+/* 1524 */ "DHPARAMS\0"
+/* 1533 */ "dhparams\0"
+/* 1542 */ "Certificate file or PKCS #11 URL to use\0"
+/* 1582 */ "X509CAFILE\0"
+/* 1593 */ "x509cafile\0"
+/* 1604 */ "CRL file to use\0"
+/* 1620 */ "X509CRLFILE\0"
+/* 1632 */ "x509crlfile\0"
+/* 1644 */ "PGP Key file to use\0"
+/* 1664 */ "PGPKEYFILE\0"
+/* 1675 */ "pgpkeyfile\0"
+/* 1686 */ "PGP Key ring file to use\0"
+/* 1711 */ "PGPKEYRING\0"
+/* 1722 */ "pgpkeyring\0"
+/* 1733 */ "PGP Public Key (certificate) file to use\0"
+/* 1774 */ "PGPCERTFILE\0"
+/* 1786 */ "pgpcertfile\0"
+/* 1798 */ "X.509 key file or PKCS #11 URL to use\0"
+/* 1836 */ "X509KEYFILE\0"
+/* 1848 */ "x509keyfile\0"
+/* 1860 */ "X.509 Certificate file or PKCS #11 URL to use\0"
+/* 1906 */ "X509CERTFILE\0"
+/* 1919 */ "x509certfile\0"
+/* 1932 */ "Alternative X.509 key file or PKCS #11 URL to use\0"
+/* 1982 */ "X509DSAKEYFILE\0"
+/* 1997 */ "x509dsakeyfile\0"
+/* 2012 */ "Alternative X.509 Certificate file or PKCS #11 URL to use\0"
+/* 2070 */ "X509DSACERTFILE\0"
+/* 2086 */ "x509dsacertfile\0"
+/* 2102 */ "X509ECCKEYFILE\0"
+/* 2117 */ "x509ecckeyfile\0"
+/* 2132 */ "X509ECCCERTFILE\0"
+/* 2148 */ "x509ecccertfile\0"
+/* 2164 */ "PGP subkey to use (hex or auto)\0"
+/* 2196 */ "PGPSUBKEY\0"
+/* 2206 */ "pgpsubkey\0"
+/* 2216 */ "SRP password file to use\0"
+/* 2241 */ "SRPPASSWD\0"
+/* 2251 */ "srppasswd\0"
+/* 2261 */ "SRP password configuration file to use\0"
+/* 2300 */ "SRPPASSWDCONF\0"
+/* 2314 */ "srppasswdconf\0"
+/* 2328 */ "PSK password file to use\0"
+/* 2353 */ "PSKPASSWD\0"
+/* 2363 */ "pskpasswd\0"
+/* 2373 */ "PSK identity hint to use\0"
+/* 2398 */ "PSKHINT\0"
+/* 2406 */ "pskhint\0"
+/* 2414 */ "The port to connect to\0"
+/* 2437 */ "PORT\0"
+/* 2442 */ "port\0"
+/* 2447 */ "Print a list of the supported algorithms and modes\0"
+/* 2498 */ "LIST\0"
+/* 2503 */ "list\0"
+/* 2508 */ "Display extended usage information and exit\0"
+/* 2552 */ "help\0"
+/* 2557 */ "Extended usage information passed thru pager\0"
+/* 2602 */ "more-help\0"
+/* 2612 */ "Output version information and exit\0"
+/* 2648 */ "version\0"
+/* 2656 */ "GNUTLS_SERV\0"
+/* 2668 */ "gnutls-serv - GnuTLS server - Ver. @address@hidden"
+ "USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
+/* 2771 */ "address@hidden"
+/* 2790 */ "\n\n\0"
+/* 2793 */ "\n"
+ "Server program that listens to incoming TLS connections.\n\0"
+/* 2852 */ "gnutls-serv @address@hidden"
+/* 2874 */ "Usage: gnutls-serv [options]\n"
+ "gnutls-serv --help for usage instructions.\n";
+
+/*
+ * debug option description:
+ */
+#define DEBUG_DESC (gnutls_serv_opt_strs+893)
+#define DEBUG_NAME (gnutls_serv_opt_strs+911)
+#define DEBUG_name (gnutls_serv_opt_strs+917)
+#define DEBUG_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * noticket option description:
+ */
+#define NOTICKET_DESC (gnutls_serv_opt_strs+923)
+#define NOTICKET_NAME (gnutls_serv_opt_strs+952)
+#define NOTICKET_name (gnutls_serv_opt_strs+961)
+#define NOTICKET_FLAGS (OPTST_DISABLED)
+
+/*
+ * generate option description:
+ */
+#define GENERATE_DESC (gnutls_serv_opt_strs+970)
+#define GENERATE_NAME (gnutls_serv_opt_strs+1020)
+#define GENERATE_name (gnutls_serv_opt_strs+1029)
+#define GENERATE_FLAGS (OPTST_DISABLED)
+
+/*
+ * quiet option description:
+ */
+#define QUIET_DESC (gnutls_serv_opt_strs+1038)
+#define QUIET_NAME (gnutls_serv_opt_strs+1061)
+#define QUIET_name (gnutls_serv_opt_strs+1067)
+#define QUIET_FLAGS (OPTST_DISABLED)
+
+/*
+ * nodb option description:
+ */
+#define NODB_DESC (gnutls_serv_opt_strs+1073)
+#define NODB_NAME (gnutls_serv_opt_strs+1106)
+#define NODB_name (gnutls_serv_opt_strs+1111)
+#define NODB_FLAGS (OPTST_DISABLED)
+
+/*
+ * http option description:
+ */
+#define HTTP_DESC (gnutls_serv_opt_strs+1116)
+#define HTTP_NAME (gnutls_serv_opt_strs+1138)
+#define HTTP_name (gnutls_serv_opt_strs+1143)
+#define HTTP_FLAGS (OPTST_DISABLED)
+
+/*
+ * echo option description:
+ */
+#define ECHO_DESC (gnutls_serv_opt_strs+1148)
+#define ECHO_NAME (gnutls_serv_opt_strs+1170)
+#define ECHO_name (gnutls_serv_opt_strs+1175)
+#define ECHO_FLAGS (OPTST_DISABLED)
+
+/*
+ * udp option description:
+ */
+#define UDP_DESC (gnutls_serv_opt_strs+1180)
+#define UDP_NAME (gnutls_serv_opt_strs+1213)
+#define UDP_name (gnutls_serv_opt_strs+1217)
+#define UDP_FLAGS (OPTST_DISABLED)
+
+/*
+ * mtu option description:
+ */
+#define MTU_DESC (gnutls_serv_opt_strs+1221)
+#define MTU_NAME (gnutls_serv_opt_strs+1246)
+#define MTU_name (gnutls_serv_opt_strs+1250)
+#define MTU_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * disable-client-cert option description:
+ */
+#define DISABLE_CLIENT_CERT_DESC (gnutls_serv_opt_strs+1254)
+#define DISABLE_CLIENT_CERT_NAME (gnutls_serv_opt_strs+1290)
+#define DISABLE_CLIENT_CERT_name (gnutls_serv_opt_strs+1310)
+#define DISABLE_CLIENT_CERT_FLAGS (OPTST_DISABLED)
+
+/*
+ * require-client-cert option description:
+ */
+#define REQUIRE_CLIENT_CERT_DESC (gnutls_serv_opt_strs+1330)
+#define REQUIRE_CLIENT_CERT_NAME (gnutls_serv_opt_strs+1359)
+#define REQUIRE_CLIENT_CERT_name (gnutls_serv_opt_strs+1379)
+#define REQUIRE_CLIENT_CERT_FLAGS (OPTST_DISABLED)
+
+/*
+ * x509fmtder option description:
+ */
+#define X509FMTDER_DESC (gnutls_serv_opt_strs+1399)
+#define X509FMTDER_NAME (gnutls_serv_opt_strs+1444)
+#define X509FMTDER_name (gnutls_serv_opt_strs+1455)
+#define X509FMTDER_FLAGS (OPTST_DISABLED)
+
+/*
+ * priority option description:
+ */
+#define PRIORITY_DESC (gnutls_serv_opt_strs+1466)
+#define PRIORITY_NAME (gnutls_serv_opt_strs+1484)
+#define PRIORITY_name (gnutls_serv_opt_strs+1493)
+#define PRIORITY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * dhparams option description:
+ */
+#define DHPARAMS_DESC (gnutls_serv_opt_strs+1502)
+#define DHPARAMS_NAME (gnutls_serv_opt_strs+1524)
+#define DHPARAMS_name (gnutls_serv_opt_strs+1533)
+#define DHPARAMS_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * x509cafile option description:
+ */
+#define X509CAFILE_DESC (gnutls_serv_opt_strs+1542)
+#define X509CAFILE_NAME (gnutls_serv_opt_strs+1582)
+#define X509CAFILE_name (gnutls_serv_opt_strs+1593)
+#define X509CAFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * x509crlfile option description:
+ */
+#define X509CRLFILE_DESC (gnutls_serv_opt_strs+1604)
+#define X509CRLFILE_NAME (gnutls_serv_opt_strs+1620)
+#define X509CRLFILE_name (gnutls_serv_opt_strs+1632)
+#define X509CRLFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * pgpkeyfile option description:
+ */
+#define PGPKEYFILE_DESC (gnutls_serv_opt_strs+1644)
+#define PGPKEYFILE_NAME (gnutls_serv_opt_strs+1664)
+#define PGPKEYFILE_name (gnutls_serv_opt_strs+1675)
+#define PGPKEYFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * pgpkeyring option description:
+ */
+#define PGPKEYRING_DESC (gnutls_serv_opt_strs+1686)
+#define PGPKEYRING_NAME (gnutls_serv_opt_strs+1711)
+#define PGPKEYRING_name (gnutls_serv_opt_strs+1722)
+#define PGPKEYRING_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * pgpcertfile option description:
+ */
+#define PGPCERTFILE_DESC (gnutls_serv_opt_strs+1733)
+#define PGPCERTFILE_NAME (gnutls_serv_opt_strs+1774)
+#define PGPCERTFILE_name (gnutls_serv_opt_strs+1786)
+#define PGPCERTFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * x509keyfile option description:
+ */
+#define X509KEYFILE_DESC (gnutls_serv_opt_strs+1798)
+#define X509KEYFILE_NAME (gnutls_serv_opt_strs+1836)
+#define X509KEYFILE_name (gnutls_serv_opt_strs+1848)
+#define X509KEYFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * x509certfile option description:
+ */
+#define X509CERTFILE_DESC (gnutls_serv_opt_strs+1860)
+#define X509CERTFILE_NAME (gnutls_serv_opt_strs+1906)
+#define X509CERTFILE_name (gnutls_serv_opt_strs+1919)
+#define X509CERTFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * x509dsakeyfile option description:
+ */
+#define X509DSAKEYFILE_DESC (gnutls_serv_opt_strs+1932)
+#define X509DSAKEYFILE_NAME (gnutls_serv_opt_strs+1982)
+#define X509DSAKEYFILE_name (gnutls_serv_opt_strs+1997)
+#define X509DSAKEYFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * x509dsacertfile option description:
+ */
+#define X509DSACERTFILE_DESC (gnutls_serv_opt_strs+2012)
+#define X509DSACERTFILE_NAME (gnutls_serv_opt_strs+2070)
+#define X509DSACERTFILE_name (gnutls_serv_opt_strs+2086)
+#define X509DSACERTFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * x509ecckeyfile option description:
+ */
+#define X509ECCKEYFILE_DESC (gnutls_serv_opt_strs+1932)
+#define X509ECCKEYFILE_NAME (gnutls_serv_opt_strs+2102)
+#define X509ECCKEYFILE_name (gnutls_serv_opt_strs+2117)
+#define X509ECCKEYFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * x509ecccertfile option description:
+ */
+#define X509ECCCERTFILE_DESC (gnutls_serv_opt_strs+2012)
+#define X509ECCCERTFILE_NAME (gnutls_serv_opt_strs+2132)
+#define X509ECCCERTFILE_name (gnutls_serv_opt_strs+2148)
+#define X509ECCCERTFILE_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * pgpsubkey option description:
+ */
+#define PGPSUBKEY_DESC (gnutls_serv_opt_strs+2164)
+#define PGPSUBKEY_NAME (gnutls_serv_opt_strs+2196)
+#define PGPSUBKEY_name (gnutls_serv_opt_strs+2206)
+#define PGPSUBKEY_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * srppasswd option description:
+ */
+#define SRPPASSWD_DESC (gnutls_serv_opt_strs+2216)
+#define SRPPASSWD_NAME (gnutls_serv_opt_strs+2241)
+#define SRPPASSWD_name (gnutls_serv_opt_strs+2251)
+#define SRPPASSWD_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * srppasswdconf option description:
+ */
+#define SRPPASSWDCONF_DESC (gnutls_serv_opt_strs+2261)
+#define SRPPASSWDCONF_NAME (gnutls_serv_opt_strs+2300)
+#define SRPPASSWDCONF_name (gnutls_serv_opt_strs+2314)
+#define SRPPASSWDCONF_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * pskpasswd option description:
+ */
+#define PSKPASSWD_DESC (gnutls_serv_opt_strs+2328)
+#define PSKPASSWD_NAME (gnutls_serv_opt_strs+2353)
+#define PSKPASSWD_name (gnutls_serv_opt_strs+2363)
+#define PSKPASSWD_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
+
+/*
+ * pskhint option description:
+ */
+#define PSKHINT_DESC (gnutls_serv_opt_strs+2373)
+#define PSKHINT_NAME (gnutls_serv_opt_strs+2398)
+#define PSKHINT_name (gnutls_serv_opt_strs+2406)
+#define PSKHINT_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * port option description:
+ */
+#define PORT_DESC (gnutls_serv_opt_strs+2414)
+#define PORT_NAME (gnutls_serv_opt_strs+2437)
+#define PORT_name (gnutls_serv_opt_strs+2442)
+#define PORT_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * list option description:
+ */
+#define LIST_DESC (gnutls_serv_opt_strs+2447)
+#define LIST_NAME (gnutls_serv_opt_strs+2498)
+#define LIST_name (gnutls_serv_opt_strs+2503)
+#define LIST_FLAGS (OPTST_DISABLED)
+
+/*
+ * Help/More_Help/Version option descriptions:
+ */
+#define HELP_DESC (gnutls_serv_opt_strs+2508)
+#define HELP_name (gnutls_serv_opt_strs+2552)
+#ifdef HAVE_WORKING_FORK
+#define MORE_HELP_DESC (gnutls_serv_opt_strs+2557)
+#define MORE_HELP_name (gnutls_serv_opt_strs+2602)
+#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+#define MORE_HELP_DESC NULL
+#define MORE_HELP_name NULL
+#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
+#endif
+#ifdef NO_OPTIONAL_OPT_ARGS
+# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
+ OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
+#endif
+#define VER_DESC (gnutls_serv_opt_strs+2612)
+#define VER_name (gnutls_serv_opt_strs+2648)
+/*
+ * Declare option callback procedures
+ */
+extern tOptProc
+ optionBooleanVal, optionNestedVal, optionNumericVal,
+ optionPagedUsage, optionPrintVersion, optionResetOpt,
+ optionStackArg, optionTimeDate, optionTimeVal,
+ optionUnstackArg, optionVendorOption;
+static tOptProc
+ doOptDebug, doOptDhparams, doOptMtu,
+ doOptPgpcertfile, doOptPgpkeyfile, doOptPgpkeyring,
+ doOptPskpasswd, doOptSrppasswd, doOptSrppasswdconf,
+ doOptX509crlfile, doUsageOpt;
+#define VER_PROC optionPrintVersion
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Define the gnutls-serv Option Descriptions.
+ * This is an array of OPTION_CT entries, one for each
+ * option that the gnutls-serv program responds to.
+ */
+static tOptDesc optDesc[OPTION_CT] = {
+ { /* entry idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equiv idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DEBUG_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --debug */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptDebug,
+ /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 1, VALUE_OPT_NOTICKET,
+ /* equiv idx, value */ 1, VALUE_OPT_NOTICKET,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ NOTICKET_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --noticket */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ NOTICKET_DESC, NOTICKET_NAME, NOTICKET_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 2, VALUE_OPT_GENERATE,
+ /* equiv idx, value */ 2, VALUE_OPT_GENERATE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ GENERATE_DESC, GENERATE_NAME, GENERATE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 3, VALUE_OPT_QUIET,
+ /* equiv idx, value */ 3, VALUE_OPT_QUIET,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ QUIET_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --quiet */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ QUIET_DESC, QUIET_NAME, QUIET_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 4, VALUE_OPT_NODB,
+ /* equiv idx, value */ 4, VALUE_OPT_NODB,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ NODB_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --nodb */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ NODB_DESC, NODB_NAME, NODB_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 5, VALUE_OPT_HTTP,
+ /* equiv idx, value */ 5, VALUE_OPT_HTTP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ HTTP_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --http */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ HTTP_DESC, HTTP_NAME, HTTP_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 6, VALUE_OPT_ECHO,
+ /* equiv idx, value */ 6, VALUE_OPT_ECHO,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ ECHO_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --echo */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ ECHO_DESC, ECHO_NAME, ECHO_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 7, VALUE_OPT_UDP,
+ /* equiv idx, value */ 7, VALUE_OPT_UDP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ UDP_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --udp */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ UDP_DESC, UDP_NAME, UDP_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 8, VALUE_OPT_MTU,
+ /* equiv idx, value */ 8, VALUE_OPT_MTU,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ MTU_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --mtu */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptMtu,
+ /* desc, NAME, name */ MTU_DESC, MTU_NAME, MTU_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 9, VALUE_OPT_DISABLE_CLIENT_CERT,
+ /* equiv idx, value */ 9, VALUE_OPT_DISABLE_CLIENT_CERT,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DISABLE_CLIENT_CERT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --disable-client-cert */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ DISABLE_CLIENT_CERT_DESC,
DISABLE_CLIENT_CERT_NAME, DISABLE_CLIENT_CERT_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 10, VALUE_OPT_REQUIRE_CLIENT_CERT,
+ /* equiv idx, value */ 10, VALUE_OPT_REQUIRE_CLIENT_CERT,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ REQUIRE_CLIENT_CERT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --require-client-cert */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ REQUIRE_CLIENT_CERT_DESC,
REQUIRE_CLIENT_CERT_NAME, REQUIRE_CLIENT_CERT_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 11, VALUE_OPT_X509FMTDER,
+ /* equiv idx, value */ 11, VALUE_OPT_X509FMTDER,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509FMTDER_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509fmtder */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509FMTDER_DESC, X509FMTDER_NAME, X509FMTDER_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 12, VALUE_OPT_PRIORITY,
+ /* equiv idx, value */ 12, VALUE_OPT_PRIORITY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PRIORITY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --priority */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PRIORITY_DESC, PRIORITY_NAME, PRIORITY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 13, VALUE_OPT_DHPARAMS,
+ /* equiv idx, value */ 13, VALUE_OPT_DHPARAMS,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DHPARAMS_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --dhparams */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptDhparams,
+ /* desc, NAME, name */ DHPARAMS_DESC, DHPARAMS_NAME, DHPARAMS_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 14, VALUE_OPT_X509CAFILE,
+ /* equiv idx, value */ 14, VALUE_OPT_X509CAFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509CAFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509cafile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509CAFILE_DESC, X509CAFILE_NAME, X509CAFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 15, VALUE_OPT_X509CRLFILE,
+ /* equiv idx, value */ 15, VALUE_OPT_X509CRLFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509CRLFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509crlfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptX509crlfile,
+ /* desc, NAME, name */ X509CRLFILE_DESC, X509CRLFILE_NAME,
X509CRLFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 16, VALUE_OPT_PGPKEYFILE,
+ /* equiv idx, value */ 16, VALUE_OPT_PGPKEYFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGPKEYFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgpkeyfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptPgpkeyfile,
+ /* desc, NAME, name */ PGPKEYFILE_DESC, PGPKEYFILE_NAME, PGPKEYFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 17, VALUE_OPT_PGPKEYRING,
+ /* equiv idx, value */ 17, VALUE_OPT_PGPKEYRING,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGPKEYRING_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgpkeyring */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptPgpkeyring,
+ /* desc, NAME, name */ PGPKEYRING_DESC, PGPKEYRING_NAME, PGPKEYRING_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 18, VALUE_OPT_PGPCERTFILE,
+ /* equiv idx, value */ 18, VALUE_OPT_PGPCERTFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGPCERTFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgpcertfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptPgpcertfile,
+ /* desc, NAME, name */ PGPCERTFILE_DESC, PGPCERTFILE_NAME,
PGPCERTFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 19, VALUE_OPT_X509KEYFILE,
+ /* equiv idx, value */ 19, VALUE_OPT_X509KEYFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509KEYFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509keyfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509KEYFILE_DESC, X509KEYFILE_NAME,
X509KEYFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 20, VALUE_OPT_X509CERTFILE,
+ /* equiv idx, value */ 20, VALUE_OPT_X509CERTFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509CERTFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509certfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509CERTFILE_DESC, X509CERTFILE_NAME,
X509CERTFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 21, VALUE_OPT_X509DSAKEYFILE,
+ /* equiv idx, value */ 21, VALUE_OPT_X509DSAKEYFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509DSAKEYFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509dsakeyfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509DSAKEYFILE_DESC, X509DSAKEYFILE_NAME,
X509DSAKEYFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 22, VALUE_OPT_X509DSACERTFILE,
+ /* equiv idx, value */ 22, VALUE_OPT_X509DSACERTFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509DSACERTFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509dsacertfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509DSACERTFILE_DESC, X509DSACERTFILE_NAME,
X509DSACERTFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 23, VALUE_OPT_X509ECCKEYFILE,
+ /* equiv idx, value */ 23, VALUE_OPT_X509ECCKEYFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509ECCKEYFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509ecckeyfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509ECCKEYFILE_DESC, X509ECCKEYFILE_NAME,
X509ECCKEYFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 24, VALUE_OPT_X509ECCCERTFILE,
+ /* equiv idx, value */ 24, VALUE_OPT_X509ECCCERTFILE,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ X509ECCCERTFILE_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --x509ecccertfile */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ X509ECCCERTFILE_DESC, X509ECCCERTFILE_NAME,
X509ECCCERTFILE_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 25, VALUE_OPT_PGPSUBKEY,
+ /* equiv idx, value */ 25, VALUE_OPT_PGPSUBKEY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PGPSUBKEY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pgpsubkey */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PGPSUBKEY_DESC, PGPSUBKEY_NAME, PGPSUBKEY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 26, VALUE_OPT_SRPPASSWD,
+ /* equiv idx, value */ 26, VALUE_OPT_SRPPASSWD,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ SRPPASSWD_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --srppasswd */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptSrppasswd,
+ /* desc, NAME, name */ SRPPASSWD_DESC, SRPPASSWD_NAME, SRPPASSWD_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 27, VALUE_OPT_SRPPASSWDCONF,
+ /* equiv idx, value */ 27, VALUE_OPT_SRPPASSWDCONF,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ SRPPASSWDCONF_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --srppasswdconf */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptSrppasswdconf,
+ /* desc, NAME, name */ SRPPASSWDCONF_DESC, SRPPASSWDCONF_NAME,
SRPPASSWDCONF_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 28, VALUE_OPT_PSKPASSWD,
+ /* equiv idx, value */ 28, VALUE_OPT_PSKPASSWD,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PSKPASSWD_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pskpasswd */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptPskpasswd,
+ /* desc, NAME, name */ PSKPASSWD_DESC, PSKPASSWD_NAME, PSKPASSWD_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 29, VALUE_OPT_PSKHINT,
+ /* equiv idx, value */ 29, VALUE_OPT_PSKHINT,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PSKHINT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --pskhint */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PSKHINT_DESC, PSKHINT_NAME, PSKHINT_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 30, VALUE_OPT_PORT,
+ /* equiv idx, value */ 30, VALUE_OPT_PORT,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PORT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --port */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionNumericVal,
+ /* desc, NAME, name */ PORT_DESC, PORT_NAME, PORT_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 31, VALUE_OPT_LIST,
+ /* equiv idx, value */ 31, VALUE_OPT_LIST,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ LIST_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --list */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ LIST_DESC, LIST_NAME, LIST_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VER_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ VER_PROC,
+ /* desc, NAME, name */ VER_DESC, NULL, VER_name,
+ /* disablement strs */ NULL, NULL },
+
+
+
+ { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doUsageOpt,
+ /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ MORE_HELP_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionPagedUsage,
+ /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
+ /* disablement strs */ NULL, NULL }
+};
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Define the gnutls-serv Option Environment
+ */
+#define zPROGNAME (gnutls_serv_opt_strs+2656)
+#define zUsageTitle (gnutls_serv_opt_strs+2668)
+#define zRcName NULL
+#define apzHomeList NULL
+#define zBugsAddr (gnutls_serv_opt_strs+2771)
+#define zExplain (gnutls_serv_opt_strs+2790)
+#define zDetail (gnutls_serv_opt_strs+2793)
+#define zFullVersion (gnutls_serv_opt_strs+2852)
+/* extracted from optcode.tlib near line 350 */
+
+#if defined(ENABLE_NLS)
+# define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
+ static tOptionXlateProc translate_option_strings;
+#else
+# define OPTPROC_BASE OPTPROC_NONE
+# define translate_option_strings NULL
+#endif /* ENABLE_NLS */
+
+
+#define gnutls_serv_full_usage (NULL)
+
+#define gnutls_serv_short_usage (gnutls_serv_opt_strs+2874)
+
+#endif /* not defined __doxygen__ */
+
+/*
+ * Create the static procedure(s) declared above.
+ */
+/**
+ * The callout function that invokes the optionUsage function.
+ *
+ * @param pOptions the AutoOpts option description structure
+ * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @noreturn
+ */
+static void
+doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
+{
+ optionUsage(&gnutls_servOptions, GNUTLS_SERV_EXIT_SUCCESS);
+ /* NOTREACHED */
+ (void)pOptDesc;
+ (void)pOptions;
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the debug option.
+ *
+ * @param pOptions the gnutls-serv options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0 , 9999 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the mtu option.
+ *
+ * @param pOptions the gnutls-serv options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptMtu(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0, 17000 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the dhparams option.
+ *
+ * @param pOptions the gnutls-serv options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptDhparams(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the x509crlfile option.
+ *
+ * @param pOptions the gnutls-serv options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptX509crlfile(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the pgpkeyfile option.
+ *
+ * @param pOptions the gnutls-serv options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptPgpkeyfile(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the pgpkeyring option.
+ *
+ * @param pOptions the gnutls-serv options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptPgpkeyring(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the pgpcertfile option.
+ *
+ * @param pOptions the gnutls-serv options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptPgpcertfile(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the srppasswd option.
+ *
+ * @param pOptions the gnutls-serv options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptSrppasswd(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the srppasswdconf option.
+ *
+ * @param pOptions the gnutls-serv options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptSrppasswdconf(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the pskpasswd option.
+ *
+ * @param pOptions the gnutls-serv options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptPskpasswd(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static teOptFileType const type =
+ FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
+ static tuFileMode mode;
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+ mode.file_flags = O_CLOEXEC;
+
+ optionFileCheck(pOptions, pOptDesc, type, mode);
+}
+/* extracted from optmain.tlib near line 1113 */
+
+/**
+ * The directory containing the data associated with gnutls-serv.
+ */
+#ifndef PKGDATADIR
+# define PKGDATADIR ""
+#endif
+
+/**
+ * Information about the person or institution that packaged gnutls-serv
+ * for the current distribution.
+ */
+#ifndef WITH_PACKAGER
+# define gnutls_serv_packager_info NULL
+#else
+static char const gnutls_serv_packager_info[] =
+ "Packaged by " WITH_PACKAGER
+
+# ifdef WITH_PACKAGER_VERSION
+ " ("WITH_PACKAGER_VERSION")"
+# endif
+
+# ifdef WITH_PACKAGER_BUG_REPORTS
+ "\nReport gnutls_serv bugs to " WITH_PACKAGER_BUG_REPORTS
+# endif
+ "\n";
+#endif
+#ifndef __doxygen__
+
+#endif /* __doxygen__ */
+/**
+ * The option definitions for gnutls-serv. The one structure that
+ * binds them all.
+ */
+tOptions gnutls_servOptions = {
+ OPTIONS_STRUCT_VERSION,
+ 0, NULL, /* original argc + argv */
+ ( OPTPROC_BASE
+ + OPTPROC_ERRSTOP
+ + OPTPROC_SHORTOPT
+ + OPTPROC_LONGOPT
+ + OPTPROC_NO_REQ_OPT
+ + OPTPROC_NO_ARGS
+ + OPTPROC_GNUUSAGE
+ + OPTPROC_MISUSE ),
+ 0, NULL, /* current option index, current option */
+ NULL, NULL, zPROGNAME,
+ zRcName, zCopyright, zLicenseDescrip,
+ zFullVersion, apzHomeList, zUsageTitle,
+ zExplain, zDetail, optDesc,
+ zBugsAddr, /* address to send bugs to */
+ NULL, NULL, /* extensions/saved state */
+ optionUsage, /* usage procedure */
+ translate_option_strings, /* translation procedure */
+ /*
+ * Indexes to special options
+ */
+ { INDEX_OPT_MORE_HELP, /* more-help option index */
+ NO_EQUIVALENT, /* save option index */
+ NO_EQUIVALENT, /* '-#' option index */
+ NO_EQUIVALENT /* index of default opt */
+ },
+ 35 /* full option count */, 32 /* user option count */,
+ gnutls_serv_full_usage, gnutls_serv_short_usage,
+ NULL, NULL,
+ PKGDATADIR, gnutls_serv_packager_info
+};
+
+#if ENABLE_NLS
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <autoopts/usage-txt.h>
+
+static char* AO_gettext(char const* pz);
+static void coerce_it(void** s);
+
+/**
+ * AutoGen specific wrapper function for gettext.
+ * It relies on the macro _() to convert from English to the target
+ * language, then strdup-duplicates the result string.
+ *
+ * @param[in] pz the input text used as a lookup key.
+ * @returns the translated text (if there is one),
+ * or the original text (if not).
+ */
+static char *
+AO_gettext(char const* pz)
+{
+ char* pzRes;
+ if (pz == NULL)
+ return NULL;
+ pzRes = _(pz);
+ if (pzRes == pz)
+ return pzRes;
+ pzRes = strdup(pzRes);
+ if (pzRes == NULL) {
+ fputs(_("No memory for duping translated strings\n"), stderr);
+ exit(GNUTLS_SERV_EXIT_FAILURE);
+ }
+ return pzRes;
+}
+
+static void coerce_it(void** s) { *s = AO_gettext(*s);
+}
+
+/**
+ * Translate all the translatable strings in the gnutls_servOptions
+ * structure defined above. This is done only once.
+ */
+static void
+translate_option_strings(void)
+{
+ tOptions * const pOpt = &gnutls_servOptions;
+
+ /*
+ * Guard against re-translation. It won't work. The strings will have
+ * been changed by the first pass through this code. One shot only.
+ */
+ if (option_usage_text.field_ct != 0) {
+ /*
+ * Do the translations. The first pointer follows the field count
+ * field. The field count field is the size of a pointer.
+ */
+ tOptDesc * pOD = pOpt->pOptDesc;
+ char ** ppz = (char**)(void*)&(option_usage_text);
+ int ix = option_usage_text.field_ct;
+
+ do {
+ ppz++;
+ *ppz = AO_gettext(*ppz);
+ } while (--ix > 0);
+
+ coerce_it((void*)&(pOpt->pzCopyright));
+ coerce_it((void*)&(pOpt->pzCopyNotice));
+ coerce_it((void*)&(pOpt->pzFullVersion));
+ coerce_it((void*)&(pOpt->pzUsageTitle));
+ coerce_it((void*)&(pOpt->pzExplain));
+ coerce_it((void*)&(pOpt->pzDetail));
+ coerce_it((void*)&(pOpt->pzPackager));
+ coerce_it((void*)&(pOpt->pzShortUsage));
+ option_usage_text.field_ct = 0;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
+ coerce_it((void*)&(pOD->pzText));
+ }
+
+ if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
+ tOptDesc * pOD = pOpt->pOptDesc;
+ int ix;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
+ coerce_it((void*)&(pOD->pz_Name));
+ coerce_it((void*)&(pOD->pz_DisableName));
+ coerce_it((void*)&(pOD->pz_DisablePfx));
+ }
+ /* prevent re-translation */
+ gnutls_servOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG |
OPTPROC_NXLAT_OPT;
+ }
+}
+
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+/* serv-args.c ends here */
diff --git a/src/serv-args.h b/src/serv-args.h
new file mode 100644
index 0000000..2096a57
--- /dev/null
+++ b/src/serv-args.h
@@ -0,0 +1,249 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (serv-args.h)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:24 PM by AutoGen 5.16
+ * From the definitions serv-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This header file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the gnutls-serv author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The gnutls-serv program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * gnutls-serv is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * gnutls-serv is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * This file contains the programmatic interface to the Automated
+ * Options generated for the gnutls-serv program.
+ * These macros are documented in the AutoGen info file in the
+ * "AutoOpts" chapter. Please refer to that doc for usage help.
+ */
+#ifndef AUTOOPTS_SERV_ARGS_H_GUARD
+#define AUTOOPTS_SERV_ARGS_H_GUARD 1
+#include "config.h"
+#include <autoopts/options.h>
+
+/*
+ * Ensure that the library used for compiling this generated header is at
+ * least as new as the version current when the header template was released
+ * (not counting patch version increments). Also ensure that the oldest
+ * tolerable version is at least as old as what was current when the header
+ * template was released.
+ */
+#define AO_TEMPLATE_VERSION 147460
+#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
+ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
+# error option template version mismatches autoopts/options.h header
+ Choke Me.
+#endif
+
+/*
+ * Enumeration of each option:
+ */
+typedef enum {
+ INDEX_OPT_DEBUG = 0,
+ INDEX_OPT_NOTICKET = 1,
+ INDEX_OPT_GENERATE = 2,
+ INDEX_OPT_QUIET = 3,
+ INDEX_OPT_NODB = 4,
+ INDEX_OPT_HTTP = 5,
+ INDEX_OPT_ECHO = 6,
+ INDEX_OPT_UDP = 7,
+ INDEX_OPT_MTU = 8,
+ INDEX_OPT_DISABLE_CLIENT_CERT = 9,
+ INDEX_OPT_REQUIRE_CLIENT_CERT = 10,
+ INDEX_OPT_X509FMTDER = 11,
+ INDEX_OPT_PRIORITY = 12,
+ INDEX_OPT_DHPARAMS = 13,
+ INDEX_OPT_X509CAFILE = 14,
+ INDEX_OPT_X509CRLFILE = 15,
+ INDEX_OPT_PGPKEYFILE = 16,
+ INDEX_OPT_PGPKEYRING = 17,
+ INDEX_OPT_PGPCERTFILE = 18,
+ INDEX_OPT_X509KEYFILE = 19,
+ INDEX_OPT_X509CERTFILE = 20,
+ INDEX_OPT_X509DSAKEYFILE = 21,
+ INDEX_OPT_X509DSACERTFILE = 22,
+ INDEX_OPT_X509ECCKEYFILE = 23,
+ INDEX_OPT_X509ECCCERTFILE = 24,
+ INDEX_OPT_PGPSUBKEY = 25,
+ INDEX_OPT_SRPPASSWD = 26,
+ INDEX_OPT_SRPPASSWDCONF = 27,
+ INDEX_OPT_PSKPASSWD = 28,
+ INDEX_OPT_PSKHINT = 29,
+ INDEX_OPT_PORT = 30,
+ INDEX_OPT_LIST = 31,
+ INDEX_OPT_VERSION = 32,
+ INDEX_OPT_HELP = 33,
+ INDEX_OPT_MORE_HELP = 34
+} teOptIndex;
+
+#define OPTION_CT 35
+#define GNUTLS_SERV_VERSION "@VERSION@"
+#define GNUTLS_SERV_FULL_VERSION "gnutls-serv @VERSION@"
+
+/*
+ * Interface defines for all options. Replace "n" with the UPPER_CASED
+ * option name (as in the teOptIndex enumeration above).
+ * e.g. HAVE_OPT(DEBUG)
+ */
+#define DESC(n) (gnutls_servOptions.pOptDesc[INDEX_OPT_## n])
+#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+#define OPT_ARG(n) (DESC(n).optArg.argString)
+#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+#define COUNT_OPT(n) (DESC(n).optOccCt)
+#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+#define CLEAR_OPT(n) STMTS( \
+ DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
+ if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
+ DESC(n).fOptState |= OPTST_DISABLED; \
+ DESC(n).optCookie = NULL )
+
+/* * * * * *
+ *
+ * Enumeration of gnutls-serv exit codes
+ */
+typedef enum {
+ GNUTLS_SERV_EXIT_SUCCESS = 0,
+ GNUTLS_SERV_EXIT_FAILURE = 1,
+ GNUTLS_SERV_EXIT_LIBOPTS_FAILURE = 70
+} gnutls_serv_exit_code_t;
+/* * * * * *
+ *
+ * Interface defines for specific options.
+ */
+#define VALUE_OPT_DEBUG 'd'
+
+#define OPT_VALUE_DEBUG (DESC(DEBUG).optArg.argInt)
+#define VALUE_OPT_NOTICKET 1
+#define VALUE_OPT_GENERATE 'g'
+#define VALUE_OPT_QUIET 'q'
+#define VALUE_OPT_NODB 4
+#define VALUE_OPT_HTTP 5
+#define VALUE_OPT_ECHO 6
+#define VALUE_OPT_UDP 'u'
+#define VALUE_OPT_MTU 8
+
+#define OPT_VALUE_MTU (DESC(MTU).optArg.argInt)
+#define VALUE_OPT_DISABLE_CLIENT_CERT 'a'
+#define VALUE_OPT_REQUIRE_CLIENT_CERT 'r'
+#define VALUE_OPT_X509FMTDER 11
+#define VALUE_OPT_PRIORITY 12
+#define VALUE_OPT_DHPARAMS 13
+#define VALUE_OPT_X509CAFILE 14
+#define VALUE_OPT_X509CRLFILE 15
+#define VALUE_OPT_PGPKEYFILE 16
+#define VALUE_OPT_PGPKEYRING 17
+#define VALUE_OPT_PGPCERTFILE 18
+#define VALUE_OPT_X509KEYFILE 19
+#define VALUE_OPT_X509CERTFILE 20
+#define VALUE_OPT_X509DSAKEYFILE 21
+#define VALUE_OPT_X509DSACERTFILE 22
+#define VALUE_OPT_X509ECCKEYFILE 23
+#define VALUE_OPT_X509ECCCERTFILE 24
+#define VALUE_OPT_PGPSUBKEY 25
+#define VALUE_OPT_SRPPASSWD 26
+#define VALUE_OPT_SRPPASSWDCONF 27
+#define VALUE_OPT_PSKPASSWD 28
+#define VALUE_OPT_PSKHINT 29
+#define VALUE_OPT_PORT 'p'
+
+#define OPT_VALUE_PORT (DESC(PORT).optArg.argInt)
+#define VALUE_OPT_LIST 'l'
+#define VALUE_OPT_HELP 'h'
+#define VALUE_OPT_MORE_HELP '!'
+#define VALUE_OPT_VERSION 'v'
+/*
+ * Interface defines not associated with particular options
+ */
+#define ERRSKIP_OPTERR STMTS(gnutls_servOptions.fOptSet &= ~OPTPROC_ERRSTOP)
+#define ERRSTOP_OPTERR STMTS(gnutls_servOptions.fOptSet |= OPTPROC_ERRSTOP)
+#define RESTART_OPT(n) STMTS( \
+ gnutls_servOptions.curOptIdx = (n); \
+ gnutls_servOptions.pzCurOpt = NULL)
+#define START_OPT RESTART_OPT(1)
+#define USAGE(c) (*gnutls_servOptions.pUsageProc)(&gnutls_servOptions,
c)
+/* extracted from opthead.tlib near line 484 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * global exported definitions
+ */
+#include <gettext.h>
+
+
+/* * * * * *
+ *
+ * Declare the gnutls-serv option descriptor.
+ */
+extern tOptions gnutls_servOptions;
+
+#if defined(ENABLE_NLS)
+# ifndef _
+# include <stdio.h>
+static inline char* aoGetsText(char const* pz) {
+ if (pz == NULL) return NULL;
+ return (char*)gettext(pz);
+}
+# define _(s) aoGetsText(s)
+# endif /* _() */
+
+# define OPT_NO_XLAT_CFG_NAMES STMTS(gnutls_servOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT_CFG;)
+# define OPT_NO_XLAT_OPT_NAMES STMTS(gnutls_servOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
+
+# define OPT_XLAT_CFG_NAMES STMTS(gnutls_servOptions.fOptSet &= \
+ ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
+# define OPT_XLAT_OPT_NAMES STMTS(gnutls_servOptions.fOptSet &= \
+ ~OPTPROC_NXLAT_OPT;)
+
+#else /* ENABLE_NLS */
+# define OPT_NO_XLAT_CFG_NAMES
+# define OPT_NO_XLAT_OPT_NAMES
+
+# define OPT_XLAT_CFG_NAMES
+# define OPT_XLAT_OPT_NAMES
+
+# ifndef _
+# define _(_s) _s
+# endif
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AUTOOPTS_SERV_ARGS_H_GUARD */
+/* serv-args.h ends here */
diff --git a/src/srptool-args.c b/src/srptool-args.c
new file mode 100644
index 0000000..1be496d
--- /dev/null
+++ b/src/srptool-args.c
@@ -0,0 +1,631 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (srptool-args.c)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:24 PM by AutoGen 5.16
+ * From the definitions srptool-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This source file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the srptool author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The srptool program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * srptool is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * srptool is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __doxygen__
+#define OPTION_CODE_COMPILE 1
+#include "srptool-args.h"
+#include <sys/types.h>
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern FILE * option_usage_fp;
+
+/* TRANSLATORS: choose the translation for option names wisely because you
+ cannot ever change your mind. */
+#define zCopyright (srptool_opt_strs+0)
+#define zLicenseDescrip (srptool_opt_strs+278)
+
+
+#ifndef NULL
+# define NULL 0
+#endif
+
+/*
+ * srptool option static const strings
+ */
+static char const srptool_opt_strs[2049] =
+/* 0 */ "srptool @address@hidden"
+ "Copyright (C) 2000-2012 Free Software Foundation, all rights
reserved.\n"
+ "This is free software. It is licensed for use, modification and\n"
+ "redistribution under the terms of the\n"
+ "GNU General Public License, version 3 or later\n"
+ " <http://gnu.org/licenses/gpl.html>\n\0"
+/* 278 */ "srptool is free software: you can redistribute it and/or modify
it under\n"
+ "the terms of the GNU General Public License as published by the
Free\n"
+ "Software Foundation, either version 3 of the License, or (at your
option)\n"
+ "any later version.\n\n"
+ "srptool is distributed in the hope that it will be useful, but
WITHOUT ANY\n"
+ "WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS\n"
+ "FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more\n"
+ "details.\n\n"
+ "You should have received a copy of the GNU General Public License
along\n"
+ "with this program. If not, see
<http://www.gnu.org/licenses/>.\n\0"
+/* 881 */ "Enable debugging.\0"
+/* 899 */ "DEBUG\0"
+/* 905 */ "debug\0"
+/* 911 */ "specify the index of the group parameters in tpasswd.conf to
use.\0"
+/* 977 */ "INDEX\0"
+/* 983 */ "index\0"
+/* 989 */ "specify a username\0"
+/* 1008 */ "USERNAME\0"
+/* 1017 */ "username\0"
+/* 1026 */ "specify a password file.\0"
+/* 1051 */ "PASSWD\0"
+/* 1058 */ "passwd\0"
+/* 1065 */ "specify salt size.\0"
+/* 1084 */ "SALT\0"
+/* 1089 */ "salt\0"
+/* 1094 */ "just verify the password.\0"
+/* 1120 */ "VERIFY\0"
+/* 1127 */ "verify\0"
+/* 1134 */ "specify a password conf file.\0"
+/* 1164 */ "PASSWD_CONF\0"
+/* 1176 */ "passwd-conf\0"
+/* 1188 */ "Generate a password configuration file.\0"
+/* 1228 */ "CREATE_CONF\0"
+/* 1240 */ "create-conf\0"
+/* 1252 */ "Display extended usage information and exit\0"
+/* 1296 */ "help\0"
+/* 1301 */ "Extended usage information passed thru pager\0"
+/* 1346 */ "more-help\0"
+/* 1356 */ "Output version information and exit\0"
+/* 1392 */ "version\0"
+/* 1400 */ "SRPTOOL\0"
+/* 1408 */ "srptool - GnuTLS SRP tool - Ver. @address@hidden"
+ "USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
+/* 1509 */ "address@hidden"
+/* 1528 */ "\n\n\0"
+/* 1531 */ "\n"
+ "Simple program that emulates the programs in the Stanford SRP
(Secure\n"
+ "Remote Password) libraries using GnuTLS. It is intended for use
in places\n"
+ "where you don't expect SRP authentication to be the used for
system users.\n\n"
+ "In brief, to use SRP you need to create two files. These are the
password\n"
+ "file that holds the users and the verifiers associated with them
and the\n"
+ "configuration file to hold the group parameters (called
tpasswd.conf).\n\0"
+/* 1973 */ "srptool @address@hidden"
+/* 1991 */ "srptool [options]\n"
+ "srptool --help for usage instructions.\n";
+
+/*
+ * debug option description:
+ */
+#define DEBUG_DESC (srptool_opt_strs+881)
+#define DEBUG_NAME (srptool_opt_strs+899)
+#define DEBUG_name (srptool_opt_strs+905)
+#define DEBUG_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * index option description:
+ */
+#define INDEX_DESC (srptool_opt_strs+911)
+#define INDEX_NAME (srptool_opt_strs+977)
+#define INDEX_name (srptool_opt_strs+983)
+#define INDEX_FLAGS (OPTST_DISABLED)
+
+/*
+ * username option description:
+ */
+#define USERNAME_DESC (srptool_opt_strs+989)
+#define USERNAME_NAME (srptool_opt_strs+1008)
+#define USERNAME_name (srptool_opt_strs+1017)
+#define USERNAME_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * passwd option description:
+ */
+#define PASSWD_DESC (srptool_opt_strs+1026)
+#define PASSWD_NAME (srptool_opt_strs+1051)
+#define PASSWD_name (srptool_opt_strs+1058)
+#define PASSWD_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * salt option description:
+ */
+#define SALT_DESC (srptool_opt_strs+1065)
+#define SALT_NAME (srptool_opt_strs+1084)
+#define SALT_name (srptool_opt_strs+1089)
+#define SALT_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
+ * verify option description:
+ */
+#define VERIFY_DESC (srptool_opt_strs+1094)
+#define VERIFY_NAME (srptool_opt_strs+1120)
+#define VERIFY_name (srptool_opt_strs+1127)
+#define VERIFY_FLAGS (OPTST_DISABLED)
+
+/*
+ * passwd-conf option description:
+ */
+#define PASSWD_CONF_DESC (srptool_opt_strs+1134)
+#define PASSWD_CONF_NAME (srptool_opt_strs+1164)
+#define PASSWD_CONF_name (srptool_opt_strs+1176)
+#define PASSWD_CONF_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * create-conf option description:
+ */
+#define CREATE_CONF_DESC (srptool_opt_strs+1188)
+#define CREATE_CONF_NAME (srptool_opt_strs+1228)
+#define CREATE_CONF_name (srptool_opt_strs+1240)
+#define CREATE_CONF_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/*
+ * Help/More_Help/Version option descriptions:
+ */
+#define HELP_DESC (srptool_opt_strs+1252)
+#define HELP_name (srptool_opt_strs+1296)
+#ifdef HAVE_WORKING_FORK
+#define MORE_HELP_DESC (srptool_opt_strs+1301)
+#define MORE_HELP_name (srptool_opt_strs+1346)
+#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+#define MORE_HELP_DESC NULL
+#define MORE_HELP_name NULL
+#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
+#endif
+#ifdef NO_OPTIONAL_OPT_ARGS
+# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
+#else
+# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
+ OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
+#endif
+#define VER_DESC (srptool_opt_strs+1356)
+#define VER_name (srptool_opt_strs+1392)
+/*
+ * Declare option callback procedures
+ */
+extern tOptProc
+ optionBooleanVal, optionNestedVal, optionNumericVal,
+ optionPagedUsage, optionPrintVersion, optionResetOpt,
+ optionStackArg, optionTimeDate, optionTimeVal,
+ optionUnstackArg, optionVendorOption;
+static tOptProc
+ doOptDebug, doUsageOpt;
+#define VER_PROC optionPrintVersion
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Define the srptool Option Descriptions.
+ * This is an array of OPTION_CT entries, one for each
+ * option that the srptool program responds to.
+ */
+static tOptDesc optDesc[OPTION_CT] = {
+ { /* entry idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equiv idx, value */ 0, VALUE_OPT_DEBUG,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ DEBUG_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --debug */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doOptDebug,
+ /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 1, VALUE_OPT_INDEX,
+ /* equiv idx, value */ 1, VALUE_OPT_INDEX,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ INDEX_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --index */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ INDEX_DESC, INDEX_NAME, INDEX_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 2, VALUE_OPT_USERNAME,
+ /* equiv idx, value */ 2, VALUE_OPT_USERNAME,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ USERNAME_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --username */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ USERNAME_DESC, USERNAME_NAME, USERNAME_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 3, VALUE_OPT_PASSWD,
+ /* equiv idx, value */ 3, VALUE_OPT_PASSWD,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PASSWD_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --passwd */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PASSWD_DESC, PASSWD_NAME, PASSWD_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 4, VALUE_OPT_SALT,
+ /* equiv idx, value */ 4, VALUE_OPT_SALT,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ SALT_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --salt */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionNumericVal,
+ /* desc, NAME, name */ SALT_DESC, SALT_NAME, SALT_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 5, VALUE_OPT_VERIFY,
+ /* equiv idx, value */ 5, VALUE_OPT_VERIFY,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VERIFY_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --verify */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ VERIFY_DESC, VERIFY_NAME, VERIFY_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 6, VALUE_OPT_PASSWD_CONF,
+ /* equiv idx, value */ 6, VALUE_OPT_PASSWD_CONF,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ PASSWD_CONF_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --passwd-conf */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ PASSWD_CONF_DESC, PASSWD_CONF_NAME,
PASSWD_CONF_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 7, VALUE_OPT_CREATE_CONF,
+ /* equiv idx, value */ 7, VALUE_OPT_CREATE_CONF,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ CREATE_CONF_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --create-conf */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ CREATE_CONF_DESC, CREATE_CONF_NAME,
CREATE_CONF_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ VER_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ VER_PROC,
+ /* desc, NAME, name */ VER_DESC, NULL, VER_name,
+ /* disablement strs */ NULL, NULL },
+
+
+
+ { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ doUsageOpt,
+ /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
+ /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ MORE_HELP_FLAGS, 0,
+ /* last opt argumnt */ { NULL },
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionPagedUsage,
+ /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
+ /* disablement strs */ NULL, NULL }
+};
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Define the srptool Option Environment
+ */
+#define zPROGNAME (srptool_opt_strs+1400)
+#define zUsageTitle (srptool_opt_strs+1408)
+#define zRcName NULL
+#define apzHomeList NULL
+#define zBugsAddr (srptool_opt_strs+1509)
+#define zExplain (srptool_opt_strs+1528)
+#define zDetail (srptool_opt_strs+1531)
+#define zFullVersion (srptool_opt_strs+1973)
+/* extracted from optcode.tlib near line 350 */
+
+#if defined(ENABLE_NLS)
+# define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
+ static tOptionXlateProc translate_option_strings;
+#else
+# define OPTPROC_BASE OPTPROC_NONE
+# define translate_option_strings NULL
+#endif /* ENABLE_NLS */
+
+
+#define srptool_full_usage (NULL)
+
+#define srptool_short_usage (srptool_opt_strs+1991)
+
+#endif /* not defined __doxygen__ */
+
+/*
+ * Create the static procedure(s) declared above.
+ */
+/**
+ * The callout function that invokes the optionUsage function.
+ *
+ * @param pOptions the AutoOpts option description structure
+ * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @noreturn
+ */
+static void
+doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
+{
+ optionUsage(&srptoolOptions, SRPTOOL_EXIT_SUCCESS);
+ /* NOTREACHED */
+ (void)pOptDesc;
+ (void)pOptions;
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the debug option.
+ *
+ * @param pOptions the srptool options data structure
+ * @param pOptDesc the option descriptor for this option.
+ */
+static void
+doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+ static struct {long rmin, rmax;} const rng[1] = {
+ { 0 , 9999 } };
+ int ix;
+
+ if (pOptions <= OPTPROC_EMIT_LIMIT)
+ goto emit_ranges;
+ optionNumericVal(pOptions, pOptDesc);
+
+ for (ix = 0; ix < 1; ix++) {
+ if (pOptDesc->optArg.argInt < rng[ix].rmin)
+ continue; /* ranges need not be ordered. */
+ if (pOptDesc->optArg.argInt == rng[ix].rmin)
+ return;
+ if (rng[ix].rmax == LONG_MIN)
+ continue;
+ if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+ return;
+ }
+
+ option_usage_fp = stderr;
+
+emit_ranges:
+
+ optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
+/* extracted from optmain.tlib near line 1113 */
+
+/**
+ * The directory containing the data associated with srptool.
+ */
+#ifndef PKGDATADIR
+# define PKGDATADIR ""
+#endif
+
+/**
+ * Information about the person or institution that packaged srptool
+ * for the current distribution.
+ */
+#ifndef WITH_PACKAGER
+# define srptool_packager_info NULL
+#else
+static char const srptool_packager_info[] =
+ "Packaged by " WITH_PACKAGER
+
+# ifdef WITH_PACKAGER_VERSION
+ " ("WITH_PACKAGER_VERSION")"
+# endif
+
+# ifdef WITH_PACKAGER_BUG_REPORTS
+ "\nReport srptool bugs to " WITH_PACKAGER_BUG_REPORTS
+# endif
+ "\n";
+#endif
+#ifndef __doxygen__
+
+#endif /* __doxygen__ */
+/**
+ * The option definitions for srptool. The one structure that
+ * binds them all.
+ */
+tOptions srptoolOptions = {
+ OPTIONS_STRUCT_VERSION,
+ 0, NULL, /* original argc + argv */
+ ( OPTPROC_BASE
+ + OPTPROC_ERRSTOP
+ + OPTPROC_SHORTOPT
+ + OPTPROC_LONGOPT
+ + OPTPROC_NO_REQ_OPT
+ + OPTPROC_NO_ARGS
+ + OPTPROC_GNUUSAGE
+ + OPTPROC_MISUSE ),
+ 0, NULL, /* current option index, current option */
+ NULL, NULL, zPROGNAME,
+ zRcName, zCopyright, zLicenseDescrip,
+ zFullVersion, apzHomeList, zUsageTitle,
+ zExplain, zDetail, optDesc,
+ zBugsAddr, /* address to send bugs to */
+ NULL, NULL, /* extensions/saved state */
+ optionUsage, /* usage procedure */
+ translate_option_strings, /* translation procedure */
+ /*
+ * Indexes to special options
+ */
+ { INDEX_OPT_MORE_HELP, /* more-help option index */
+ NO_EQUIVALENT, /* save option index */
+ NO_EQUIVALENT, /* '-#' option index */
+ NO_EQUIVALENT /* index of default opt */
+ },
+ 11 /* full option count */, 8 /* user option count */,
+ srptool_full_usage, srptool_short_usage,
+ NULL, NULL,
+ PKGDATADIR, srptool_packager_info
+};
+
+#if ENABLE_NLS
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <autoopts/usage-txt.h>
+
+static char* AO_gettext(char const* pz);
+static void coerce_it(void** s);
+
+/**
+ * AutoGen specific wrapper function for gettext.
+ * It relies on the macro _() to convert from English to the target
+ * language, then strdup-duplicates the result string.
+ *
+ * @param[in] pz the input text used as a lookup key.
+ * @returns the translated text (if there is one),
+ * or the original text (if not).
+ */
+static char *
+AO_gettext(char const* pz)
+{
+ char* pzRes;
+ if (pz == NULL)
+ return NULL;
+ pzRes = _(pz);
+ if (pzRes == pz)
+ return pzRes;
+ pzRes = strdup(pzRes);
+ if (pzRes == NULL) {
+ fputs(_("No memory for duping translated strings\n"), stderr);
+ exit(SRPTOOL_EXIT_FAILURE);
+ }
+ return pzRes;
+}
+
+static void coerce_it(void** s) { *s = AO_gettext(*s);
+}
+
+/**
+ * Translate all the translatable strings in the srptoolOptions
+ * structure defined above. This is done only once.
+ */
+static void
+translate_option_strings(void)
+{
+ tOptions * const pOpt = &srptoolOptions;
+
+ /*
+ * Guard against re-translation. It won't work. The strings will have
+ * been changed by the first pass through this code. One shot only.
+ */
+ if (option_usage_text.field_ct != 0) {
+ /*
+ * Do the translations. The first pointer follows the field count
+ * field. The field count field is the size of a pointer.
+ */
+ tOptDesc * pOD = pOpt->pOptDesc;
+ char ** ppz = (char**)(void*)&(option_usage_text);
+ int ix = option_usage_text.field_ct;
+
+ do {
+ ppz++;
+ *ppz = AO_gettext(*ppz);
+ } while (--ix > 0);
+
+ coerce_it((void*)&(pOpt->pzCopyright));
+ coerce_it((void*)&(pOpt->pzCopyNotice));
+ coerce_it((void*)&(pOpt->pzFullVersion));
+ coerce_it((void*)&(pOpt->pzUsageTitle));
+ coerce_it((void*)&(pOpt->pzExplain));
+ coerce_it((void*)&(pOpt->pzDetail));
+ coerce_it((void*)&(pOpt->pzPackager));
+ coerce_it((void*)&(pOpt->pzShortUsage));
+ option_usage_text.field_ct = 0;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
+ coerce_it((void*)&(pOD->pzText));
+ }
+
+ if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
+ tOptDesc * pOD = pOpt->pOptDesc;
+ int ix;
+
+ for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
+ coerce_it((void*)&(pOD->pz_Name));
+ coerce_it((void*)&(pOD->pz_DisableName));
+ coerce_it((void*)&(pOD->pz_DisablePfx));
+ }
+ /* prevent re-translation */
+ srptoolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
+ }
+}
+
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+/* srptool-args.c ends here */
diff --git a/src/srptool-args.h b/src/srptool-args.h
new file mode 100644
index 0000000..7666351
--- /dev/null
+++ b/src/srptool-args.h
@@ -0,0 +1,199 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (srptool-args.h)
+ *
+ * It has been AutoGen-ed May 9, 2012 at 08:05:24 PM by AutoGen 5.16
+ * From the definitions srptool-args.def
+ * and the template file options
+ *
+ * Generated from AutoOpts 36:4:11 templates.
+ *
+ * AutoOpts is a copyrighted work. This header file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+ * by the srptool author or copyright holder. AutoOpts is
+ * licensed under the terms of the LGPL. The redistributable library
+ * (``libopts'') is licensed under the terms of either the LGPL or, at the
+ * users discretion, the BSD license. See the AutoOpts and/or libopts sources
+ * for details.
+ *
+ * The srptool program is copyrighted and licensed
+ * under the following terms:
+ *
+ * Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
+ *
+ * srptool is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * srptool is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * This file contains the programmatic interface to the Automated
+ * Options generated for the srptool program.
+ * These macros are documented in the AutoGen info file in the
+ * "AutoOpts" chapter. Please refer to that doc for usage help.
+ */
+#ifndef AUTOOPTS_SRPTOOL_ARGS_H_GUARD
+#define AUTOOPTS_SRPTOOL_ARGS_H_GUARD 1
+#include "config.h"
+#include <autoopts/options.h>
+
+/*
+ * Ensure that the library used for compiling this generated header is at
+ * least as new as the version current when the header template was released
+ * (not counting patch version increments). Also ensure that the oldest
+ * tolerable version is at least as old as what was current when the header
+ * template was released.
+ */
+#define AO_TEMPLATE_VERSION 147460
+#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
+ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
+# error option template version mismatches autoopts/options.h header
+ Choke Me.
+#endif
+
+/*
+ * Enumeration of each option:
+ */
+typedef enum {
+ INDEX_OPT_DEBUG = 0,
+ INDEX_OPT_INDEX = 1,
+ INDEX_OPT_USERNAME = 2,
+ INDEX_OPT_PASSWD = 3,
+ INDEX_OPT_SALT = 4,
+ INDEX_OPT_VERIFY = 5,
+ INDEX_OPT_PASSWD_CONF = 6,
+ INDEX_OPT_CREATE_CONF = 7,
+ INDEX_OPT_VERSION = 8,
+ INDEX_OPT_HELP = 9,
+ INDEX_OPT_MORE_HELP = 10
+} teOptIndex;
+
+#define OPTION_CT 11
+#define SRPTOOL_VERSION "@VERSION@"
+#define SRPTOOL_FULL_VERSION "srptool @VERSION@"
+
+/*
+ * Interface defines for all options. Replace "n" with the UPPER_CASED
+ * option name (as in the teOptIndex enumeration above).
+ * e.g. HAVE_OPT(DEBUG)
+ */
+#define DESC(n) (srptoolOptions.pOptDesc[INDEX_OPT_## n])
+#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+#define OPT_ARG(n) (DESC(n).optArg.argString)
+#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+#define COUNT_OPT(n) (DESC(n).optOccCt)
+#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+#define CLEAR_OPT(n) STMTS( \
+ DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
+ if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
+ DESC(n).fOptState |= OPTST_DISABLED; \
+ DESC(n).optCookie = NULL )
+
+/* * * * * *
+ *
+ * Enumeration of srptool exit codes
+ */
+typedef enum {
+ SRPTOOL_EXIT_SUCCESS = 0,
+ SRPTOOL_EXIT_FAILURE = 1,
+ SRPTOOL_EXIT_LIBOPTS_FAILURE = 70
+} srptool_exit_code_t;
+/* * * * * *
+ *
+ * Interface defines for specific options.
+ */
+#define VALUE_OPT_DEBUG 'd'
+
+#define OPT_VALUE_DEBUG (DESC(DEBUG).optArg.argInt)
+#define VALUE_OPT_INDEX 'i'
+#define VALUE_OPT_USERNAME 'u'
+#define VALUE_OPT_PASSWD 'p'
+#define VALUE_OPT_SALT 's'
+
+#define OPT_VALUE_SALT (DESC(SALT).optArg.argInt)
+#define VALUE_OPT_VERIFY 5
+#define VALUE_OPT_PASSWD_CONF 'v'
+#define VALUE_OPT_CREATE_CONF 7
+#define VALUE_OPT_HELP 'h'
+#define VALUE_OPT_MORE_HELP '!'
+#define VALUE_OPT_VERSION 'v'
+/*
+ * Interface defines not associated with particular options
+ */
+#define ERRSKIP_OPTERR STMTS(srptoolOptions.fOptSet &= ~OPTPROC_ERRSTOP)
+#define ERRSTOP_OPTERR STMTS(srptoolOptions.fOptSet |= OPTPROC_ERRSTOP)
+#define RESTART_OPT(n) STMTS( \
+ srptoolOptions.curOptIdx = (n); \
+ srptoolOptions.pzCurOpt = NULL)
+#define START_OPT RESTART_OPT(1)
+#define USAGE(c) (*srptoolOptions.pUsageProc)(&srptoolOptions, c)
+/* extracted from opthead.tlib near line 484 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * global exported definitions
+ */
+#include <gettext.h>
+
+
+/* * * * * *
+ *
+ * Declare the srptool option descriptor.
+ */
+extern tOptions srptoolOptions;
+
+#if defined(ENABLE_NLS)
+# ifndef _
+# include <stdio.h>
+static inline char* aoGetsText(char const* pz) {
+ if (pz == NULL) return NULL;
+ return (char*)gettext(pz);
+}
+# define _(s) aoGetsText(s)
+# endif /* _() */
+
+# define OPT_NO_XLAT_CFG_NAMES STMTS(srptoolOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT_CFG;)
+# define OPT_NO_XLAT_OPT_NAMES STMTS(srptoolOptions.fOptSet |= \
+ OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
+
+# define OPT_XLAT_CFG_NAMES STMTS(srptoolOptions.fOptSet &= \
+ ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
+# define OPT_XLAT_OPT_NAMES STMTS(srptoolOptions.fOptSet &= \
+ ~OPTPROC_NXLAT_OPT;)
+
+#else /* ENABLE_NLS */
+# define OPT_NO_XLAT_CFG_NAMES
+# define OPT_NO_XLAT_OPT_NAMES
+
+# define OPT_XLAT_CFG_NAMES
+# define OPT_XLAT_OPT_NAMES
+
+# ifndef _
+# define _(_s) _s
+# endif
+#endif /* ENABLE_NLS */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AUTOOPTS_SRPTOOL_ARGS_H_GUARD */
+/* srptool-args.h ends here */
hooks/post-receive
--
GNU gnutls
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU gnutls branch, gnutls_3_0_x-2, updated. gnutls_3_0_20-21-g1cf7f8a,
Nikos Mavrogiannopoulos <=