diff options
Diffstat (limited to 'src/gnutls-cli-options.h')
-rw-r--r-- | src/gnutls-cli-options.h | 460 |
1 files changed, 460 insertions, 0 deletions
diff --git a/src/gnutls-cli-options.h b/src/gnutls-cli-options.h new file mode 100644 index 0000000..ff22424 --- /dev/null +++ b/src/gnutls-cli-options.h @@ -0,0 +1,460 @@ +#include <stdbool.h> +#include <stdio.h> + +#ifndef GNUTLS_CLI_OPTIONS_H_ +#define GNUTLS_CLI_OPTIONS_H_ 1 + +struct gnutls_cli_list +{ + const char **args; + unsigned int count; +}; + +struct gnutls_cli_options +{ + /* Options present in the command line */ + struct + { + bool debug; + bool verbose; + bool tofu; + bool strict_tofu; + bool dane; + bool local_dns; + bool ca_verification; + bool ocsp; + bool resume; + bool earlydata; + bool rehandshake; + bool sni_hostname; + bool verify_hostname; + bool starttls; + bool starttls_proto; + bool udp; + bool mtu; + bool crlf; + bool fastopen; + bool x509fmtder; + bool print_cert; + bool save_cert; + bool save_ocsp; + bool save_ocsp_multi; + bool save_server_trace; + bool save_client_trace; + bool dh_bits; + bool priority; + bool x509cafile; + bool x509crlfile; + bool x509keyfile; + bool x509certfile; + bool rawpkkeyfile; + bool rawpkfile; + bool srpusername; + bool srppasswd; + bool pskusername; + bool pskkey; + bool port; + bool insecure; + bool verify_allow_broken; + bool ranges; + bool benchmark_ciphers; + bool benchmark_tls_kx; + bool benchmark_tls_ciphers; + bool list; + bool priority_list; + bool noticket; + bool srtp_profiles; + bool alpn; + bool compress_cert; + bool heartbeat; + bool recordsize; + bool disable_sni; + bool disable_extensions; + bool single_key_share; + bool post_handshake_auth; + bool inline_commands; + bool inline_commands_prefix; + bool provider; + bool fips140_mode; + bool list_config; + bool logfile; + bool keymatexport; + bool keymatexportsize; + bool waitresumption; + bool ca_auto_retrieve; + bool version; + bool help; + bool more_help; + } present; + + /* Option arguments in raw string form */ + struct + { + const char *debug; + const char *earlydata; + const char *sni_hostname; + const char *verify_hostname; + const char *starttls_proto; + const char *mtu; + const char *save_cert; + const char *save_ocsp; + const char *save_ocsp_multi; + const char *save_server_trace; + const char *save_client_trace; + const char *dh_bits; + const char *priority; + const char *x509cafile; + const char *x509crlfile; + const char *x509keyfile; + const char *x509certfile; + const char *rawpkkeyfile; + const char *rawpkfile; + const char *srpusername; + const char *srppasswd; + const char *pskusername; + const char *pskkey; + const char *port; + const char *srtp_profiles; + const char *recordsize; + const char *inline_commands_prefix; + const char *provider; + const char *logfile; + const char *keymatexport; + const char *keymatexportsize; + const char *version; + } arg; + + /* Option arguments parsed as integer */ + struct + { + int debug; + int mtu; + int dh_bits; + int recordsize; + int keymatexportsize; + } value; + + /* Option arguments parsed as list */ + struct + { + struct gnutls_cli_list alpn; + struct gnutls_cli_list compress_cert; + } list; + + /* Option enablement status */ + struct + { + bool debug; + bool verbose; + bool tofu; + bool strict_tofu; + bool dane; + bool local_dns; + bool ca_verification; + bool ocsp; + bool resume; + bool earlydata; + bool rehandshake; + bool sni_hostname; + bool verify_hostname; + bool starttls; + bool starttls_proto; + bool udp; + bool mtu; + bool crlf; + bool fastopen; + bool x509fmtder; + bool print_cert; + bool save_cert; + bool save_ocsp; + bool save_ocsp_multi; + bool save_server_trace; + bool save_client_trace; + bool dh_bits; + bool priority; + bool x509cafile; + bool x509crlfile; + bool x509keyfile; + bool x509certfile; + bool rawpkkeyfile; + bool rawpkfile; + bool srpusername; + bool srppasswd; + bool pskusername; + bool pskkey; + bool port; + bool insecure; + bool verify_allow_broken; + bool ranges; + bool benchmark_ciphers; + bool benchmark_tls_kx; + bool benchmark_tls_ciphers; + bool list; + bool priority_list; + bool noticket; + bool srtp_profiles; + bool alpn; + bool compress_cert; + bool heartbeat; + bool recordsize; + bool disable_sni; + bool disable_extensions; + bool single_key_share; + bool post_handshake_auth; + bool inline_commands; + bool inline_commands_prefix; + bool provider; + bool fips140_mode; + bool list_config; + bool logfile; + bool keymatexport; + bool keymatexportsize; + bool waitresumption; + bool ca_auto_retrieve; + bool version; + bool help; + bool more_help; + } enabled; +}; + +#define HAVE_OPT(name) HAVE_OPT_ ## name +#define OPT_ARG(name) OPT_ARG_ ## name +#define ENABLED_OPT(name) ENABLED_OPT_ ## name +#define OPTS_COUNT(name) OPTS_COUNT_ ## name +#define OPTS_ARRAY(name) OPTS_ARRAY_ ## name +#define USAGE(status) usage (stdout, (status)) + +#define HAVE_OPT_DEBUG gnutls_cli_options.present.debug +#define HAVE_OPT_VERBOSE gnutls_cli_options.present.verbose +#define HAVE_OPT_TOFU gnutls_cli_options.present.tofu +#define HAVE_OPT_STRICT_TOFU gnutls_cli_options.present.strict_tofu +#define HAVE_OPT_DANE gnutls_cli_options.present.dane +#define HAVE_OPT_LOCAL_DNS gnutls_cli_options.present.local_dns +#define HAVE_OPT_CA_VERIFICATION gnutls_cli_options.present.ca_verification +#define HAVE_OPT_OCSP gnutls_cli_options.present.ocsp +#define HAVE_OPT_RESUME gnutls_cli_options.present.resume +#define HAVE_OPT_EARLYDATA gnutls_cli_options.present.earlydata +#define HAVE_OPT_REHANDSHAKE gnutls_cli_options.present.rehandshake +#define HAVE_OPT_SNI_HOSTNAME gnutls_cli_options.present.sni_hostname +#define HAVE_OPT_VERIFY_HOSTNAME gnutls_cli_options.present.verify_hostname +#define HAVE_OPT_STARTTLS gnutls_cli_options.present.starttls +#define HAVE_OPT_STARTTLS_PROTO gnutls_cli_options.present.starttls_proto +#define HAVE_OPT_UDP gnutls_cli_options.present.udp +#define HAVE_OPT_MTU gnutls_cli_options.present.mtu +#define HAVE_OPT_CRLF gnutls_cli_options.present.crlf +#define HAVE_OPT_FASTOPEN gnutls_cli_options.present.fastopen +#define HAVE_OPT_X509FMTDER gnutls_cli_options.present.x509fmtder +#define HAVE_OPT_PRINT_CERT gnutls_cli_options.present.print_cert +#define HAVE_OPT_SAVE_CERT gnutls_cli_options.present.save_cert +#define HAVE_OPT_SAVE_OCSP gnutls_cli_options.present.save_ocsp +#define HAVE_OPT_SAVE_OCSP_MULTI gnutls_cli_options.present.save_ocsp_multi +#define HAVE_OPT_SAVE_SERVER_TRACE gnutls_cli_options.present.save_server_trace +#define HAVE_OPT_SAVE_CLIENT_TRACE gnutls_cli_options.present.save_client_trace +#define HAVE_OPT_DH_BITS gnutls_cli_options.present.dh_bits +#define HAVE_OPT_PRIORITY gnutls_cli_options.present.priority +#define HAVE_OPT_X509CAFILE gnutls_cli_options.present.x509cafile +#define HAVE_OPT_X509CRLFILE gnutls_cli_options.present.x509crlfile +#define HAVE_OPT_X509KEYFILE gnutls_cli_options.present.x509keyfile +#define HAVE_OPT_X509CERTFILE gnutls_cli_options.present.x509certfile +#define HAVE_OPT_RAWPKKEYFILE gnutls_cli_options.present.rawpkkeyfile +#define HAVE_OPT_RAWPKFILE gnutls_cli_options.present.rawpkfile +#define HAVE_OPT_SRPUSERNAME gnutls_cli_options.present.srpusername +#define HAVE_OPT_SRPPASSWD gnutls_cli_options.present.srppasswd +#define HAVE_OPT_PSKUSERNAME gnutls_cli_options.present.pskusername +#define HAVE_OPT_PSKKEY gnutls_cli_options.present.pskkey +#define HAVE_OPT_PORT gnutls_cli_options.present.port +#define HAVE_OPT_INSECURE gnutls_cli_options.present.insecure +#define HAVE_OPT_VERIFY_ALLOW_BROKEN gnutls_cli_options.present.verify_allow_broken +#define HAVE_OPT_RANGES gnutls_cli_options.present.ranges +#define HAVE_OPT_BENCHMARK_CIPHERS gnutls_cli_options.present.benchmark_ciphers +#define HAVE_OPT_BENCHMARK_TLS_KX gnutls_cli_options.present.benchmark_tls_kx +#define HAVE_OPT_BENCHMARK_TLS_CIPHERS gnutls_cli_options.present.benchmark_tls_ciphers +#define HAVE_OPT_LIST gnutls_cli_options.present.list +#define HAVE_OPT_PRIORITY_LIST gnutls_cli_options.present.priority_list +#define HAVE_OPT_NOTICKET gnutls_cli_options.present.noticket +#define HAVE_OPT_SRTP_PROFILES gnutls_cli_options.present.srtp_profiles +#define HAVE_OPT_ALPN gnutls_cli_options.present.alpn +#define HAVE_OPT_COMPRESS_CERT gnutls_cli_options.present.compress_cert +#define HAVE_OPT_HEARTBEAT gnutls_cli_options.present.heartbeat +#define HAVE_OPT_RECORDSIZE gnutls_cli_options.present.recordsize +#define HAVE_OPT_DISABLE_SNI gnutls_cli_options.present.disable_sni +#define HAVE_OPT_DISABLE_EXTENSIONS gnutls_cli_options.present.disable_extensions +#define HAVE_OPT_SINGLE_KEY_SHARE gnutls_cli_options.present.single_key_share +#define HAVE_OPT_POST_HANDSHAKE_AUTH gnutls_cli_options.present.post_handshake_auth +#define HAVE_OPT_INLINE_COMMANDS gnutls_cli_options.present.inline_commands +#define HAVE_OPT_INLINE_COMMANDS_PREFIX gnutls_cli_options.present.inline_commands_prefix +#define HAVE_OPT_PROVIDER gnutls_cli_options.present.provider +#define HAVE_OPT_FIPS140_MODE gnutls_cli_options.present.fips140_mode +#define HAVE_OPT_LIST_CONFIG gnutls_cli_options.present.list_config +#define HAVE_OPT_LOGFILE gnutls_cli_options.present.logfile +#define HAVE_OPT_KEYMATEXPORT gnutls_cli_options.present.keymatexport +#define HAVE_OPT_KEYMATEXPORTSIZE gnutls_cli_options.present.keymatexportsize +#define HAVE_OPT_WAITRESUMPTION gnutls_cli_options.present.waitresumption +#define HAVE_OPT_CA_AUTO_RETRIEVE gnutls_cli_options.present.ca_auto_retrieve +#define HAVE_OPT_VERSION gnutls_cli_options.present.version +#define HAVE_OPT_HELP gnutls_cli_options.present.help +#define HAVE_OPT_MORE_HELP gnutls_cli_options.present.more_help + +#define OPT_ARG_DEBUG gnutls_cli_options.arg.debug +#define OPT_ARG_VERBOSE gnutls_cli_options.arg.verbose +#define OPT_ARG_TOFU gnutls_cli_options.arg.tofu +#define OPT_ARG_STRICT_TOFU gnutls_cli_options.arg.strict_tofu +#define OPT_ARG_DANE gnutls_cli_options.arg.dane +#define OPT_ARG_LOCAL_DNS gnutls_cli_options.arg.local_dns +#define OPT_ARG_CA_VERIFICATION gnutls_cli_options.arg.ca_verification +#define OPT_ARG_OCSP gnutls_cli_options.arg.ocsp +#define OPT_ARG_RESUME gnutls_cli_options.arg.resume +#define OPT_ARG_EARLYDATA gnutls_cli_options.arg.earlydata +#define OPT_ARG_REHANDSHAKE gnutls_cli_options.arg.rehandshake +#define OPT_ARG_SNI_HOSTNAME gnutls_cli_options.arg.sni_hostname +#define OPT_ARG_VERIFY_HOSTNAME gnutls_cli_options.arg.verify_hostname +#define OPT_ARG_STARTTLS gnutls_cli_options.arg.starttls +#define OPT_ARG_STARTTLS_PROTO gnutls_cli_options.arg.starttls_proto +#define OPT_ARG_UDP gnutls_cli_options.arg.udp +#define OPT_ARG_MTU gnutls_cli_options.arg.mtu +#define OPT_ARG_CRLF gnutls_cli_options.arg.crlf +#define OPT_ARG_FASTOPEN gnutls_cli_options.arg.fastopen +#define OPT_ARG_X509FMTDER gnutls_cli_options.arg.x509fmtder +#define OPT_ARG_PRINT_CERT gnutls_cli_options.arg.print_cert +#define OPT_ARG_SAVE_CERT gnutls_cli_options.arg.save_cert +#define OPT_ARG_SAVE_OCSP gnutls_cli_options.arg.save_ocsp +#define OPT_ARG_SAVE_OCSP_MULTI gnutls_cli_options.arg.save_ocsp_multi +#define OPT_ARG_SAVE_SERVER_TRACE gnutls_cli_options.arg.save_server_trace +#define OPT_ARG_SAVE_CLIENT_TRACE gnutls_cli_options.arg.save_client_trace +#define OPT_ARG_DH_BITS gnutls_cli_options.arg.dh_bits +#define OPT_ARG_PRIORITY gnutls_cli_options.arg.priority +#define OPT_ARG_X509CAFILE gnutls_cli_options.arg.x509cafile +#define OPT_ARG_X509CRLFILE gnutls_cli_options.arg.x509crlfile +#define OPT_ARG_X509KEYFILE gnutls_cli_options.arg.x509keyfile +#define OPT_ARG_X509CERTFILE gnutls_cli_options.arg.x509certfile +#define OPT_ARG_RAWPKKEYFILE gnutls_cli_options.arg.rawpkkeyfile +#define OPT_ARG_RAWPKFILE gnutls_cli_options.arg.rawpkfile +#define OPT_ARG_SRPUSERNAME gnutls_cli_options.arg.srpusername +#define OPT_ARG_SRPPASSWD gnutls_cli_options.arg.srppasswd +#define OPT_ARG_PSKUSERNAME gnutls_cli_options.arg.pskusername +#define OPT_ARG_PSKKEY gnutls_cli_options.arg.pskkey +#define OPT_ARG_PORT gnutls_cli_options.arg.port +#define OPT_ARG_INSECURE gnutls_cli_options.arg.insecure +#define OPT_ARG_VERIFY_ALLOW_BROKEN gnutls_cli_options.arg.verify_allow_broken +#define OPT_ARG_RANGES gnutls_cli_options.arg.ranges +#define OPT_ARG_BENCHMARK_CIPHERS gnutls_cli_options.arg.benchmark_ciphers +#define OPT_ARG_BENCHMARK_TLS_KX gnutls_cli_options.arg.benchmark_tls_kx +#define OPT_ARG_BENCHMARK_TLS_CIPHERS gnutls_cli_options.arg.benchmark_tls_ciphers +#define OPT_ARG_LIST gnutls_cli_options.arg.list +#define OPT_ARG_PRIORITY_LIST gnutls_cli_options.arg.priority_list +#define OPT_ARG_NOTICKET gnutls_cli_options.arg.noticket +#define OPT_ARG_SRTP_PROFILES gnutls_cli_options.arg.srtp_profiles +#define OPT_ARG_ALPN gnutls_cli_options.arg.alpn +#define OPT_ARG_COMPRESS_CERT gnutls_cli_options.arg.compress_cert +#define OPT_ARG_HEARTBEAT gnutls_cli_options.arg.heartbeat +#define OPT_ARG_RECORDSIZE gnutls_cli_options.arg.recordsize +#define OPT_ARG_DISABLE_SNI gnutls_cli_options.arg.disable_sni +#define OPT_ARG_DISABLE_EXTENSIONS gnutls_cli_options.arg.disable_extensions +#define OPT_ARG_SINGLE_KEY_SHARE gnutls_cli_options.arg.single_key_share +#define OPT_ARG_POST_HANDSHAKE_AUTH gnutls_cli_options.arg.post_handshake_auth +#define OPT_ARG_INLINE_COMMANDS gnutls_cli_options.arg.inline_commands +#define OPT_ARG_INLINE_COMMANDS_PREFIX gnutls_cli_options.arg.inline_commands_prefix +#define OPT_ARG_PROVIDER gnutls_cli_options.arg.provider +#define OPT_ARG_FIPS140_MODE gnutls_cli_options.arg.fips140_mode +#define OPT_ARG_LIST_CONFIG gnutls_cli_options.arg.list_config +#define OPT_ARG_LOGFILE gnutls_cli_options.arg.logfile +#define OPT_ARG_KEYMATEXPORT gnutls_cli_options.arg.keymatexport +#define OPT_ARG_KEYMATEXPORTSIZE gnutls_cli_options.arg.keymatexportsize +#define OPT_ARG_WAITRESUMPTION gnutls_cli_options.arg.waitresumption +#define OPT_ARG_CA_AUTO_RETRIEVE gnutls_cli_options.arg.ca_auto_retrieve +#define OPT_ARG_VERSION gnutls_cli_options.arg.version +#define OPT_ARG_HELP gnutls_cli_options.arg.help +#define OPT_ARG_MORE_HELP gnutls_cli_options.arg.more_help + +#define OPT_VALUE_DEBUG gnutls_cli_options.value.debug +#define OPT_VALUE_MTU gnutls_cli_options.value.mtu +#define OPT_VALUE_DH_BITS gnutls_cli_options.value.dh_bits +#define OPT_VALUE_RECORDSIZE gnutls_cli_options.value.recordsize +#define OPT_VALUE_KEYMATEXPORTSIZE gnutls_cli_options.value.keymatexportsize + +#define ENABLED_OPT_DEBUG gnutls_cli_options.enabled.debug +#define ENABLED_OPT_VERBOSE gnutls_cli_options.enabled.verbose +#define ENABLED_OPT_TOFU gnutls_cli_options.enabled.tofu +#define ENABLED_OPT_STRICT_TOFU gnutls_cli_options.enabled.strict_tofu +#define ENABLED_OPT_DANE gnutls_cli_options.enabled.dane +#define ENABLED_OPT_LOCAL_DNS gnutls_cli_options.enabled.local_dns +#define ENABLED_OPT_CA_VERIFICATION gnutls_cli_options.enabled.ca_verification +#define ENABLED_OPT_OCSP gnutls_cli_options.enabled.ocsp +#define ENABLED_OPT_RESUME gnutls_cli_options.enabled.resume +#define ENABLED_OPT_EARLYDATA gnutls_cli_options.enabled.earlydata +#define ENABLED_OPT_REHANDSHAKE gnutls_cli_options.enabled.rehandshake +#define ENABLED_OPT_SNI_HOSTNAME gnutls_cli_options.enabled.sni_hostname +#define ENABLED_OPT_VERIFY_HOSTNAME gnutls_cli_options.enabled.verify_hostname +#define ENABLED_OPT_STARTTLS gnutls_cli_options.enabled.starttls +#define ENABLED_OPT_STARTTLS_PROTO gnutls_cli_options.enabled.starttls_proto +#define ENABLED_OPT_UDP gnutls_cli_options.enabled.udp +#define ENABLED_OPT_MTU gnutls_cli_options.enabled.mtu +#define ENABLED_OPT_CRLF gnutls_cli_options.enabled.crlf +#define ENABLED_OPT_FASTOPEN gnutls_cli_options.enabled.fastopen +#define ENABLED_OPT_X509FMTDER gnutls_cli_options.enabled.x509fmtder +#define ENABLED_OPT_PRINT_CERT gnutls_cli_options.enabled.print_cert +#define ENABLED_OPT_SAVE_CERT gnutls_cli_options.enabled.save_cert +#define ENABLED_OPT_SAVE_OCSP gnutls_cli_options.enabled.save_ocsp +#define ENABLED_OPT_SAVE_OCSP_MULTI gnutls_cli_options.enabled.save_ocsp_multi +#define ENABLED_OPT_SAVE_SERVER_TRACE gnutls_cli_options.enabled.save_server_trace +#define ENABLED_OPT_SAVE_CLIENT_TRACE gnutls_cli_options.enabled.save_client_trace +#define ENABLED_OPT_DH_BITS gnutls_cli_options.enabled.dh_bits +#define ENABLED_OPT_PRIORITY gnutls_cli_options.enabled.priority +#define ENABLED_OPT_X509CAFILE gnutls_cli_options.enabled.x509cafile +#define ENABLED_OPT_X509CRLFILE gnutls_cli_options.enabled.x509crlfile +#define ENABLED_OPT_X509KEYFILE gnutls_cli_options.enabled.x509keyfile +#define ENABLED_OPT_X509CERTFILE gnutls_cli_options.enabled.x509certfile +#define ENABLED_OPT_RAWPKKEYFILE gnutls_cli_options.enabled.rawpkkeyfile +#define ENABLED_OPT_RAWPKFILE gnutls_cli_options.enabled.rawpkfile +#define ENABLED_OPT_SRPUSERNAME gnutls_cli_options.enabled.srpusername +#define ENABLED_OPT_SRPPASSWD gnutls_cli_options.enabled.srppasswd +#define ENABLED_OPT_PSKUSERNAME gnutls_cli_options.enabled.pskusername +#define ENABLED_OPT_PSKKEY gnutls_cli_options.enabled.pskkey +#define ENABLED_OPT_PORT gnutls_cli_options.enabled.port +#define ENABLED_OPT_INSECURE gnutls_cli_options.enabled.insecure +#define ENABLED_OPT_VERIFY_ALLOW_BROKEN gnutls_cli_options.enabled.verify_allow_broken +#define ENABLED_OPT_RANGES gnutls_cli_options.enabled.ranges +#define ENABLED_OPT_BENCHMARK_CIPHERS gnutls_cli_options.enabled.benchmark_ciphers +#define ENABLED_OPT_BENCHMARK_TLS_KX gnutls_cli_options.enabled.benchmark_tls_kx +#define ENABLED_OPT_BENCHMARK_TLS_CIPHERS gnutls_cli_options.enabled.benchmark_tls_ciphers +#define ENABLED_OPT_LIST gnutls_cli_options.enabled.list +#define ENABLED_OPT_PRIORITY_LIST gnutls_cli_options.enabled.priority_list +#define ENABLED_OPT_NOTICKET gnutls_cli_options.enabled.noticket +#define ENABLED_OPT_SRTP_PROFILES gnutls_cli_options.enabled.srtp_profiles +#define ENABLED_OPT_ALPN gnutls_cli_options.enabled.alpn +#define ENABLED_OPT_COMPRESS_CERT gnutls_cli_options.enabled.compress_cert +#define ENABLED_OPT_HEARTBEAT gnutls_cli_options.enabled.heartbeat +#define ENABLED_OPT_RECORDSIZE gnutls_cli_options.enabled.recordsize +#define ENABLED_OPT_DISABLE_SNI gnutls_cli_options.enabled.disable_sni +#define ENABLED_OPT_DISABLE_EXTENSIONS gnutls_cli_options.enabled.disable_extensions +#define ENABLED_OPT_SINGLE_KEY_SHARE gnutls_cli_options.enabled.single_key_share +#define ENABLED_OPT_POST_HANDSHAKE_AUTH gnutls_cli_options.enabled.post_handshake_auth +#define ENABLED_OPT_INLINE_COMMANDS gnutls_cli_options.enabled.inline_commands +#define ENABLED_OPT_INLINE_COMMANDS_PREFIX gnutls_cli_options.enabled.inline_commands_prefix +#define ENABLED_OPT_PROVIDER gnutls_cli_options.enabled.provider +#define ENABLED_OPT_FIPS140_MODE gnutls_cli_options.enabled.fips140_mode +#define ENABLED_OPT_LIST_CONFIG gnutls_cli_options.enabled.list_config +#define ENABLED_OPT_LOGFILE gnutls_cli_options.enabled.logfile +#define ENABLED_OPT_KEYMATEXPORT gnutls_cli_options.enabled.keymatexport +#define ENABLED_OPT_KEYMATEXPORTSIZE gnutls_cli_options.enabled.keymatexportsize +#define ENABLED_OPT_WAITRESUMPTION gnutls_cli_options.enabled.waitresumption +#define ENABLED_OPT_CA_AUTO_RETRIEVE gnutls_cli_options.enabled.ca_auto_retrieve +#define ENABLED_OPT_VERSION gnutls_cli_options.enabled.version +#define ENABLED_OPT_HELP gnutls_cli_options.enabled.help +#define ENABLED_OPT_MORE_HELP gnutls_cli_options.enabled.more_help + +#define OPTS_COUNT_ALPN gnutls_cli_options.list.alpn.count +#define OPTS_COUNT_COMPRESS_CERT gnutls_cli_options.list.compress_cert.count + +#define OPTS_ARRAY_ALPN gnutls_cli_options.list.alpn.args +#define OPTS_ARRAY_COMPRESS_CERT gnutls_cli_options.list.compress_cert.args + + +extern struct gnutls_cli_options gnutls_cli_options; +int process_options (int argc, char **argv); +void usage (FILE *out, int status); + +#endif /* GNUTLS_CLI_OPTIONS_H_ */ +#define optionProcess(a,b,c) process_options(b,c) +#define STACKCT_OPT OPTS_COUNT +#define STACKLST_OPT OPTS_ARRAY |