summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@redhat.com>2018-10-12 13:33:13 +0200
committerDaiki Ueno <dueno@redhat.com>2018-11-12 13:26:43 +0100
commit5c8d543e9554292f22200b91a0595d3dfa26cecf (patch)
tree7b90d4c485342e00173001ac76ec73c332473039
parent0676e51e8c621add86b1a9ba90b142dd1c3c7060 (diff)
downloadgnutls-5c8d543e9554292f22200b91a0595d3dfa26cecf.tar.gz
cli: add --earlydata option
Signed-off-by: Daiki Ueno <dueno@redhat.com>
-rw-r--r--src/cli-args.c.bak853
-rw-r--r--src/cli-args.def7
-rw-r--r--src/cli-args.h.bak190
-rw-r--r--src/cli.c21
-rw-r--r--src/socket.c16
-rw-r--r--src/socket.h9
6 files changed, 585 insertions, 511 deletions
diff --git a/src/cli-args.c.bak b/src/cli-args.c.bak
index 3e40c4f9b3..cb49046a9c 100644
--- a/src/cli-args.c.bak
+++ b/src/cli-args.c.bak
@@ -63,7 +63,7 @@ extern FILE * option_usage_fp;
/**
* static const strings for gnutls-cli options
*/
-static char const gnutls_cli_opt_strs[5102] =
+static char const gnutls_cli_opt_strs[5176] =
/* 0 */ "gnutls-cli 3.6.4\n"
"Copyright (C) 2000-2018 Free Software Foundation, and others, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
@@ -108,166 +108,169 @@ static char const gnutls_cli_opt_strs[5102] =
/* 1370 */ "Establish a session and resume\0"
/* 1401 */ "RESUME\0"
/* 1408 */ "resume\0"
-/* 1415 */ "Establish a session and rehandshake\0"
-/* 1451 */ "REHANDSHAKE\0"
-/* 1463 */ "rehandshake\0"
-/* 1475 */ "Server's hostname for server name indication extension\0"
-/* 1530 */ "SNI_HOSTNAME\0"
-/* 1543 */ "sni-hostname\0"
-/* 1556 */ "Server's hostname to use for validation\0"
-/* 1596 */ "VERIFY_HOSTNAME\0"
-/* 1612 */ "verify-hostname\0"
-/* 1628 */ "Connect, establish a plain session and start TLS\0"
-/* 1677 */ "STARTTLS\0"
-/* 1686 */ "starttls\0"
-/* 1695 */ "an alias for the 'starttls-proto' option\0"
-/* 1736 */ "app-proto\0"
-/* 1746 */ "The application protocol to be used to obtain the server's certificate\n"
+/* 1415 */ "Send early data on resumption from the specified file\0"
+/* 1469 */ "EARLYDATA\0"
+/* 1479 */ "earlydata\0"
+/* 1489 */ "Establish a session and rehandshake\0"
+/* 1525 */ "REHANDSHAKE\0"
+/* 1537 */ "rehandshake\0"
+/* 1549 */ "Server's hostname for server name indication extension\0"
+/* 1604 */ "SNI_HOSTNAME\0"
+/* 1617 */ "sni-hostname\0"
+/* 1630 */ "Server's hostname to use for validation\0"
+/* 1670 */ "VERIFY_HOSTNAME\0"
+/* 1686 */ "verify-hostname\0"
+/* 1702 */ "Connect, establish a plain session and start TLS\0"
+/* 1751 */ "STARTTLS\0"
+/* 1760 */ "starttls\0"
+/* 1769 */ "an alias for the 'starttls-proto' option\0"
+/* 1810 */ "app-proto\0"
+/* 1820 */ "The application protocol to be used to obtain the server's certificate\n"
"(https, ftp, smtp, imap, ldap, xmpp, lmtp, pop3, nntp, sieve, postgres)\0"
-/* 1889 */ "STARTTLS_PROTO\0"
-/* 1904 */ "starttls-proto\0"
-/* 1919 */ "Use DTLS (datagram TLS) over UDP\0"
-/* 1952 */ "UDP\0"
-/* 1956 */ "udp\0"
-/* 1960 */ "Set MTU for datagram TLS\0"
-/* 1985 */ "MTU\0"
-/* 1989 */ "mtu\0"
-/* 1993 */ "Send CR LF instead of LF\0"
-/* 2018 */ "CRLF\0"
-/* 2023 */ "crlf\0"
-/* 2028 */ "Enable TCP Fast Open\0"
-/* 2049 */ "FASTOPEN\0"
-/* 2058 */ "fastopen\0"
-/* 2067 */ "Use DER format for certificates to read from\0"
-/* 2112 */ "X509FMTDER\0"
-/* 2123 */ "x509fmtder\0"
-/* 2134 */ "Print peer's certificate in PEM format\0"
-/* 2173 */ "PRINT_CERT\0"
-/* 2184 */ "print-cert\0"
-/* 2195 */ "Save the peer's certificate chain in the specified file in PEM format\0"
-/* 2265 */ "SAVE_CERT\0"
-/* 2275 */ "save-cert\0"
-/* 2285 */ "Save the peer's OCSP status response in the provided file\0"
-/* 2343 */ "SAVE_OCSP\0"
-/* 2353 */ "save-ocsp\0"
-/* 2363 */ "Save the server-side TLS message trace in the provided file\0"
-/* 2423 */ "SAVE_SERVER_TRACE\0"
-/* 2441 */ "save-server-trace\0"
-/* 2459 */ "Save the client-side TLS message trace in the provided file\0"
-/* 2519 */ "SAVE_CLIENT_TRACE\0"
-/* 2537 */ "save-client-trace\0"
-/* 2555 */ "The minimum number of bits allowed for DH\0"
-/* 2597 */ "DH_BITS\0"
-/* 2605 */ "dh-bits\0"
-/* 2613 */ "Priorities string\0"
-/* 2631 */ "PRIORITY\0"
-/* 2640 */ "priority\0"
-/* 2649 */ "Certificate file or PKCS #11 URL to use\0"
-/* 2689 */ "X509CAFILE\0"
-/* 2700 */ "x509cafile\0"
-/* 2711 */ "CRL file to use\0"
-/* 2727 */ "X509CRLFILE\0"
-/* 2739 */ "x509crlfile\0"
-/* 2751 */ "X.509 key file or PKCS #11 URL to use\0"
-/* 2789 */ "X509KEYFILE\0"
-/* 2801 */ "x509keyfile\0"
-/* 2813 */ "X.509 Certificate file or PKCS #11 URL to use\0"
-/* 2859 */ "X509CERTFILE\0"
-/* 2872 */ "x509certfile\0"
-/* 2885 */ "SRP username to use\0"
-/* 2905 */ "SRPUSERNAME\0"
-/* 2917 */ "srpusername\0"
-/* 2929 */ "SRP password to use\0"
-/* 2949 */ "SRPPASSWD\0"
-/* 2959 */ "srppasswd\0"
-/* 2969 */ "PSK username to use\0"
-/* 2989 */ "PSKUSERNAME\0"
-/* 3001 */ "pskusername\0"
-/* 3013 */ "PSK key (in hex) to use\0"
-/* 3037 */ "PSKKEY\0"
-/* 3044 */ "pskkey\0"
-/* 3051 */ "The port or service to connect to\0"
-/* 3085 */ "PORT\0"
-/* 3090 */ "port\0"
-/* 3095 */ "Don't abort program if server certificate can't be validated\0"
-/* 3156 */ "INSECURE\0"
-/* 3165 */ "insecure\0"
-/* 3174 */ "Allow broken algorithms, such as MD5 for certificate verification\0"
-/* 3240 */ "VERIFY_ALLOW_BROKEN\0"
-/* 3260 */ "verify-allow-broken\0"
-/* 3280 */ "Use length-hiding padding to prevent traffic analysis (deprecated)\0"
-/* 3347 */ "RANGES\0"
-/* 3354 */ "ranges\0"
-/* 3361 */ "Benchmark individual ciphers\0"
-/* 3390 */ "BENCHMARK_CIPHERS\0"
-/* 3408 */ "benchmark-ciphers\0"
-/* 3426 */ "Benchmark TLS key exchange methods\0"
-/* 3461 */ "BENCHMARK_TLS_KX\0"
-/* 3478 */ "benchmark-tls-kx\0"
-/* 3495 */ "Benchmark TLS ciphers\0"
-/* 3517 */ "BENCHMARK_TLS_CIPHERS\0"
-/* 3539 */ "benchmark-tls-ciphers\0"
-/* 3561 */ "Print a list of the supported algorithms and modes\0"
-/* 3612 */ "LIST\0"
-/* 3617 */ "list\0"
-/* 3622 */ "Print a list of the supported priority strings\0"
-/* 3669 */ "PRIORITY_LIST\0"
-/* 3683 */ "priority-list\0"
-/* 3697 */ "Don't allow session tickets\0"
-/* 3725 */ "NOTICKET\0"
-/* 3734 */ "noticket\0"
-/* 3743 */ "Offer SRTP profiles\0"
-/* 3763 */ "SRTP_PROFILES\0"
-/* 3777 */ "srtp-profiles\0"
-/* 3791 */ "Application layer protocol\0"
-/* 3818 */ "ALPN\0"
-/* 3823 */ "alpn\0"
-/* 3828 */ "Activate heartbeat support\0"
-/* 3855 */ "HEARTBEAT\0"
-/* 3865 */ "heartbeat\0"
-/* 3875 */ "The maximum record size to advertize\0"
-/* 3912 */ "RECORDSIZE\0"
-/* 3923 */ "recordsize\0"
-/* 3934 */ "Do not send a Server Name Indication (SNI)\0"
-/* 3977 */ "DISABLE_SNI\0"
-/* 3989 */ "disable-sni\0"
-/* 4001 */ "Disable all the TLS extensions (deprecated)\0"
-/* 4045 */ "DISABLE_EXTENSIONS\0"
-/* 4064 */ "disable-extensions\0"
-/* 4083 */ "Send a single key share under TLS1.3\0"
-/* 4120 */ "SINGLE_KEY_SHARE\0"
-/* 4137 */ "single-key-share\0"
-/* 4154 */ "Enable post-handshake authentication under TLS1.3\0"
-/* 4204 */ "POST_HANDSHAKE_AUTH\0"
-/* 4224 */ "post-handshake-auth\0"
-/* 4244 */ "Inline commands of the form ^<cmd>^\0"
-/* 4280 */ "INLINE_COMMANDS\0"
-/* 4296 */ "inline-commands\0"
-/* 4312 */ "Change the default delimiter for inline commands.\0"
-/* 4362 */ "INLINE_COMMANDS_PREFIX\0"
-/* 4385 */ "inline-commands-prefix\0"
-/* 4408 */ "Specify the PKCS #11 provider library\0"
-/* 4446 */ "PROVIDER\0"
-/* 4455 */ "provider\0"
-/* 4464 */ "Reports the status of the FIPS140-2 mode in gnutls library\0"
-/* 4523 */ "FIPS140_MODE\0"
-/* 4536 */ "fips140-mode\0"
-/* 4549 */ "display extended usage information and exit\0"
-/* 4593 */ "help\0"
-/* 4598 */ "extended usage information passed thru pager\0"
-/* 4643 */ "more-help\0"
-/* 4653 */ "output version information and exit\0"
-/* 4689 */ "version\0"
-/* 4697 */ "GNUTLS_CLI\0"
-/* 4708 */ "gnutls-cli - GnuTLS client\n"
+/* 1963 */ "STARTTLS_PROTO\0"
+/* 1978 */ "starttls-proto\0"
+/* 1993 */ "Use DTLS (datagram TLS) over UDP\0"
+/* 2026 */ "UDP\0"
+/* 2030 */ "udp\0"
+/* 2034 */ "Set MTU for datagram TLS\0"
+/* 2059 */ "MTU\0"
+/* 2063 */ "mtu\0"
+/* 2067 */ "Send CR LF instead of LF\0"
+/* 2092 */ "CRLF\0"
+/* 2097 */ "crlf\0"
+/* 2102 */ "Enable TCP Fast Open\0"
+/* 2123 */ "FASTOPEN\0"
+/* 2132 */ "fastopen\0"
+/* 2141 */ "Use DER format for certificates to read from\0"
+/* 2186 */ "X509FMTDER\0"
+/* 2197 */ "x509fmtder\0"
+/* 2208 */ "Print peer's certificate in PEM format\0"
+/* 2247 */ "PRINT_CERT\0"
+/* 2258 */ "print-cert\0"
+/* 2269 */ "Save the peer's certificate chain in the specified file in PEM format\0"
+/* 2339 */ "SAVE_CERT\0"
+/* 2349 */ "save-cert\0"
+/* 2359 */ "Save the peer's OCSP status response in the provided file\0"
+/* 2417 */ "SAVE_OCSP\0"
+/* 2427 */ "save-ocsp\0"
+/* 2437 */ "Save the server-side TLS message trace in the provided file\0"
+/* 2497 */ "SAVE_SERVER_TRACE\0"
+/* 2515 */ "save-server-trace\0"
+/* 2533 */ "Save the client-side TLS message trace in the provided file\0"
+/* 2593 */ "SAVE_CLIENT_TRACE\0"
+/* 2611 */ "save-client-trace\0"
+/* 2629 */ "The minimum number of bits allowed for DH\0"
+/* 2671 */ "DH_BITS\0"
+/* 2679 */ "dh-bits\0"
+/* 2687 */ "Priorities string\0"
+/* 2705 */ "PRIORITY\0"
+/* 2714 */ "priority\0"
+/* 2723 */ "Certificate file or PKCS #11 URL to use\0"
+/* 2763 */ "X509CAFILE\0"
+/* 2774 */ "x509cafile\0"
+/* 2785 */ "CRL file to use\0"
+/* 2801 */ "X509CRLFILE\0"
+/* 2813 */ "x509crlfile\0"
+/* 2825 */ "X.509 key file or PKCS #11 URL to use\0"
+/* 2863 */ "X509KEYFILE\0"
+/* 2875 */ "x509keyfile\0"
+/* 2887 */ "X.509 Certificate file or PKCS #11 URL to use\0"
+/* 2933 */ "X509CERTFILE\0"
+/* 2946 */ "x509certfile\0"
+/* 2959 */ "SRP username to use\0"
+/* 2979 */ "SRPUSERNAME\0"
+/* 2991 */ "srpusername\0"
+/* 3003 */ "SRP password to use\0"
+/* 3023 */ "SRPPASSWD\0"
+/* 3033 */ "srppasswd\0"
+/* 3043 */ "PSK username to use\0"
+/* 3063 */ "PSKUSERNAME\0"
+/* 3075 */ "pskusername\0"
+/* 3087 */ "PSK key (in hex) to use\0"
+/* 3111 */ "PSKKEY\0"
+/* 3118 */ "pskkey\0"
+/* 3125 */ "The port or service to connect to\0"
+/* 3159 */ "PORT\0"
+/* 3164 */ "port\0"
+/* 3169 */ "Don't abort program if server certificate can't be validated\0"
+/* 3230 */ "INSECURE\0"
+/* 3239 */ "insecure\0"
+/* 3248 */ "Allow broken algorithms, such as MD5 for certificate verification\0"
+/* 3314 */ "VERIFY_ALLOW_BROKEN\0"
+/* 3334 */ "verify-allow-broken\0"
+/* 3354 */ "Use length-hiding padding to prevent traffic analysis (deprecated)\0"
+/* 3421 */ "RANGES\0"
+/* 3428 */ "ranges\0"
+/* 3435 */ "Benchmark individual ciphers\0"
+/* 3464 */ "BENCHMARK_CIPHERS\0"
+/* 3482 */ "benchmark-ciphers\0"
+/* 3500 */ "Benchmark TLS key exchange methods\0"
+/* 3535 */ "BENCHMARK_TLS_KX\0"
+/* 3552 */ "benchmark-tls-kx\0"
+/* 3569 */ "Benchmark TLS ciphers\0"
+/* 3591 */ "BENCHMARK_TLS_CIPHERS\0"
+/* 3613 */ "benchmark-tls-ciphers\0"
+/* 3635 */ "Print a list of the supported algorithms and modes\0"
+/* 3686 */ "LIST\0"
+/* 3691 */ "list\0"
+/* 3696 */ "Print a list of the supported priority strings\0"
+/* 3743 */ "PRIORITY_LIST\0"
+/* 3757 */ "priority-list\0"
+/* 3771 */ "Don't allow session tickets\0"
+/* 3799 */ "NOTICKET\0"
+/* 3808 */ "noticket\0"
+/* 3817 */ "Offer SRTP profiles\0"
+/* 3837 */ "SRTP_PROFILES\0"
+/* 3851 */ "srtp-profiles\0"
+/* 3865 */ "Application layer protocol\0"
+/* 3892 */ "ALPN\0"
+/* 3897 */ "alpn\0"
+/* 3902 */ "Activate heartbeat support\0"
+/* 3929 */ "HEARTBEAT\0"
+/* 3939 */ "heartbeat\0"
+/* 3949 */ "The maximum record size to advertize\0"
+/* 3986 */ "RECORDSIZE\0"
+/* 3997 */ "recordsize\0"
+/* 4008 */ "Do not send a Server Name Indication (SNI)\0"
+/* 4051 */ "DISABLE_SNI\0"
+/* 4063 */ "disable-sni\0"
+/* 4075 */ "Disable all the TLS extensions (deprecated)\0"
+/* 4119 */ "DISABLE_EXTENSIONS\0"
+/* 4138 */ "disable-extensions\0"
+/* 4157 */ "Send a single key share under TLS1.3\0"
+/* 4194 */ "SINGLE_KEY_SHARE\0"
+/* 4211 */ "single-key-share\0"
+/* 4228 */ "Enable post-handshake authentication under TLS1.3\0"
+/* 4278 */ "POST_HANDSHAKE_AUTH\0"
+/* 4298 */ "post-handshake-auth\0"
+/* 4318 */ "Inline commands of the form ^<cmd>^\0"
+/* 4354 */ "INLINE_COMMANDS\0"
+/* 4370 */ "inline-commands\0"
+/* 4386 */ "Change the default delimiter for inline commands.\0"
+/* 4436 */ "INLINE_COMMANDS_PREFIX\0"
+/* 4459 */ "inline-commands-prefix\0"
+/* 4482 */ "Specify the PKCS #11 provider library\0"
+/* 4520 */ "PROVIDER\0"
+/* 4529 */ "provider\0"
+/* 4538 */ "Reports the status of the FIPS140-2 mode in gnutls library\0"
+/* 4597 */ "FIPS140_MODE\0"
+/* 4610 */ "fips140-mode\0"
+/* 4623 */ "display extended usage information and exit\0"
+/* 4667 */ "help\0"
+/* 4672 */ "extended usage information passed thru pager\0"
+/* 4717 */ "more-help\0"
+/* 4727 */ "output version information and exit\0"
+/* 4763 */ "version\0"
+/* 4771 */ "GNUTLS_CLI\0"
+/* 4782 */ "gnutls-cli - GnuTLS client\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostname]\n\0"
-/* 4804 */ "bugs@gnutls.org\0"
-/* 4820 */ "\n\0"
-/* 4822 */ "Simple client program to set up a TLS connection to some other computer. It\n"
+/* 4878 */ "bugs@gnutls.org\0"
+/* 4894 */ "\n\0"
+/* 4896 */ "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"
-/* 5005 */ "gnutls-cli 3.6.4\0"
-/* 5022 */ "Usage: gnutls-cli [options] hostname\n"
+/* 5079 */ "gnutls-cli 3.6.4\0"
+/* 5096 */ "Usage: gnutls-cli [options] hostname\n"
"gnutls-cli --help for usage instructions.\n";
/**
@@ -404,14 +407,27 @@ static char const gnutls_cli_opt_strs[5102] =
#define RESUME_FLAGS (OPTST_DISABLED)
/**
+ * earlydata option description:
+ */
+/** Descriptive text for the earlydata option */
+#define EARLYDATA_DESC (gnutls_cli_opt_strs+1415)
+/** Upper-cased name for the earlydata option */
+#define EARLYDATA_NAME (gnutls_cli_opt_strs+1469)
+/** Name string for the earlydata option */
+#define EARLYDATA_name (gnutls_cli_opt_strs+1479)
+/** Compiled in flag settings for the earlydata option */
+#define EARLYDATA_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/**
* rehandshake option description:
*/
/** Descriptive text for the rehandshake option */
-#define REHANDSHAKE_DESC (gnutls_cli_opt_strs+1415)
+#define REHANDSHAKE_DESC (gnutls_cli_opt_strs+1489)
/** Upper-cased name for the rehandshake option */
-#define REHANDSHAKE_NAME (gnutls_cli_opt_strs+1451)
+#define REHANDSHAKE_NAME (gnutls_cli_opt_strs+1525)
/** Name string for the rehandshake option */
-#define REHANDSHAKE_name (gnutls_cli_opt_strs+1463)
+#define REHANDSHAKE_name (gnutls_cli_opt_strs+1537)
/** Compiled in flag settings for the rehandshake option */
#define REHANDSHAKE_FLAGS (OPTST_DISABLED)
@@ -419,11 +435,11 @@ static char const gnutls_cli_opt_strs[5102] =
* sni-hostname option description:
*/
/** Descriptive text for the sni-hostname option */
-#define SNI_HOSTNAME_DESC (gnutls_cli_opt_strs+1475)
+#define SNI_HOSTNAME_DESC (gnutls_cli_opt_strs+1549)
/** Upper-cased name for the sni-hostname option */
-#define SNI_HOSTNAME_NAME (gnutls_cli_opt_strs+1530)
+#define SNI_HOSTNAME_NAME (gnutls_cli_opt_strs+1604)
/** Name string for the sni-hostname option */
-#define SNI_HOSTNAME_name (gnutls_cli_opt_strs+1543)
+#define SNI_HOSTNAME_name (gnutls_cli_opt_strs+1617)
/** Compiled in flag settings for the sni-hostname option */
#define SNI_HOSTNAME_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -432,11 +448,11 @@ static char const gnutls_cli_opt_strs[5102] =
* verify-hostname option description:
*/
/** Descriptive text for the verify-hostname option */
-#define VERIFY_HOSTNAME_DESC (gnutls_cli_opt_strs+1556)
+#define VERIFY_HOSTNAME_DESC (gnutls_cli_opt_strs+1630)
/** Upper-cased name for the verify-hostname option */
-#define VERIFY_HOSTNAME_NAME (gnutls_cli_opt_strs+1596)
+#define VERIFY_HOSTNAME_NAME (gnutls_cli_opt_strs+1670)
/** Name string for the verify-hostname option */
-#define VERIFY_HOSTNAME_name (gnutls_cli_opt_strs+1612)
+#define VERIFY_HOSTNAME_name (gnutls_cli_opt_strs+1686)
/** Compiled in flag settings for the verify-hostname option */
#define VERIFY_HOSTNAME_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -445,11 +461,11 @@ static char const gnutls_cli_opt_strs[5102] =
* starttls option description:
*/
/** Descriptive text for the starttls option */
-#define STARTTLS_DESC (gnutls_cli_opt_strs+1628)
+#define STARTTLS_DESC (gnutls_cli_opt_strs+1702)
/** Upper-cased name for the starttls option */
-#define STARTTLS_NAME (gnutls_cli_opt_strs+1677)
+#define STARTTLS_NAME (gnutls_cli_opt_strs+1751)
/** Name string for the starttls option */
-#define STARTTLS_name (gnutls_cli_opt_strs+1686)
+#define STARTTLS_name (gnutls_cli_opt_strs+1760)
/** Compiled in flag settings for the starttls option */
#define STARTTLS_FLAGS (OPTST_DISABLED)
@@ -457,10 +473,10 @@ static char const gnutls_cli_opt_strs[5102] =
* app-proto option description:
*/
/** Descriptive text for the app-proto option */
-#define APP_PROTO_DESC (gnutls_cli_opt_strs+1695)
+#define APP_PROTO_DESC (gnutls_cli_opt_strs+1769)
#define APP_PROTO_NAME NULL
/** Unmodified name string for the app-proto option */
-#define APP_PROTO_name (gnutls_cli_opt_strs+1736)
+#define APP_PROTO_name (gnutls_cli_opt_strs+1810)
/** Compiled in flag settings for the app-proto option */
#define APP_PROTO_FLAGS (STARTTLS_PROTO_FLAGS | OPTST_ALIAS)
@@ -469,11 +485,11 @@ static char const gnutls_cli_opt_strs[5102] =
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the starttls-proto option */
-#define STARTTLS_PROTO_DESC (gnutls_cli_opt_strs+1746)
+#define STARTTLS_PROTO_DESC (gnutls_cli_opt_strs+1820)
/** Upper-cased name for the starttls-proto option */
-#define STARTTLS_PROTO_NAME (gnutls_cli_opt_strs+1889)
+#define STARTTLS_PROTO_NAME (gnutls_cli_opt_strs+1963)
/** Name string for the starttls-proto option */
-#define STARTTLS_PROTO_name (gnutls_cli_opt_strs+1904)
+#define STARTTLS_PROTO_name (gnutls_cli_opt_strs+1978)
/** Other options that appear in conjunction with the starttls-proto option */
static int const aStarttls_ProtoCantList[] = {
INDEX_OPT_STARTTLS, NO_EQUIVALENT };
@@ -485,11 +501,11 @@ static int const aStarttls_ProtoCantList[] = {
* udp option description:
*/
/** Descriptive text for the udp option */
-#define UDP_DESC (gnutls_cli_opt_strs+1919)
+#define UDP_DESC (gnutls_cli_opt_strs+1993)
/** Upper-cased name for the udp option */
-#define UDP_NAME (gnutls_cli_opt_strs+1952)
+#define UDP_NAME (gnutls_cli_opt_strs+2026)
/** Name string for the udp option */
-#define UDP_name (gnutls_cli_opt_strs+1956)
+#define UDP_name (gnutls_cli_opt_strs+2030)
/** Compiled in flag settings for the udp option */
#define UDP_FLAGS (OPTST_DISABLED)
@@ -497,11 +513,11 @@ static int const aStarttls_ProtoCantList[] = {
* mtu option description:
*/
/** Descriptive text for the mtu option */
-#define MTU_DESC (gnutls_cli_opt_strs+1960)
+#define MTU_DESC (gnutls_cli_opt_strs+2034)
/** Upper-cased name for the mtu option */
-#define MTU_NAME (gnutls_cli_opt_strs+1985)
+#define MTU_NAME (gnutls_cli_opt_strs+2059)
/** Name string for the mtu option */
-#define MTU_name (gnutls_cli_opt_strs+1989)
+#define MTU_name (gnutls_cli_opt_strs+2063)
/** Compiled in flag settings for the mtu option */
#define MTU_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -510,11 +526,11 @@ static int const aStarttls_ProtoCantList[] = {
* crlf option description:
*/
/** Descriptive text for the crlf option */
-#define CRLF_DESC (gnutls_cli_opt_strs+1993)
+#define CRLF_DESC (gnutls_cli_opt_strs+2067)
/** Upper-cased name for the crlf option */
-#define CRLF_NAME (gnutls_cli_opt_strs+2018)
+#define CRLF_NAME (gnutls_cli_opt_strs+2092)
/** Name string for the crlf option */
-#define CRLF_name (gnutls_cli_opt_strs+2023)
+#define CRLF_name (gnutls_cli_opt_strs+2097)
/** Compiled in flag settings for the crlf option */
#define CRLF_FLAGS (OPTST_DISABLED)
@@ -522,11 +538,11 @@ static int const aStarttls_ProtoCantList[] = {
* fastopen option description:
*/
/** Descriptive text for the fastopen option */
-#define FASTOPEN_DESC (gnutls_cli_opt_strs+2028)
+#define FASTOPEN_DESC (gnutls_cli_opt_strs+2102)
/** Upper-cased name for the fastopen option */
-#define FASTOPEN_NAME (gnutls_cli_opt_strs+2049)
+#define FASTOPEN_NAME (gnutls_cli_opt_strs+2123)
/** Name string for the fastopen option */
-#define FASTOPEN_name (gnutls_cli_opt_strs+2058)
+#define FASTOPEN_name (gnutls_cli_opt_strs+2132)
/** Compiled in flag settings for the fastopen option */
#define FASTOPEN_FLAGS (OPTST_DISABLED)
@@ -534,11 +550,11 @@ static int const aStarttls_ProtoCantList[] = {
* x509fmtder option description:
*/
/** Descriptive text for the x509fmtder option */
-#define X509FMTDER_DESC (gnutls_cli_opt_strs+2067)
+#define X509FMTDER_DESC (gnutls_cli_opt_strs+2141)
/** Upper-cased name for the x509fmtder option */
-#define X509FMTDER_NAME (gnutls_cli_opt_strs+2112)
+#define X509FMTDER_NAME (gnutls_cli_opt_strs+2186)
/** Name string for the x509fmtder option */
-#define X509FMTDER_name (gnutls_cli_opt_strs+2123)
+#define X509FMTDER_name (gnutls_cli_opt_strs+2197)
/** Compiled in flag settings for the x509fmtder option */
#define X509FMTDER_FLAGS (OPTST_DISABLED)
@@ -546,11 +562,11 @@ static int const aStarttls_ProtoCantList[] = {
* print-cert option description:
*/
/** Descriptive text for the print-cert option */
-#define PRINT_CERT_DESC (gnutls_cli_opt_strs+2134)
+#define PRINT_CERT_DESC (gnutls_cli_opt_strs+2208)
/** Upper-cased name for the print-cert option */
-#define PRINT_CERT_NAME (gnutls_cli_opt_strs+2173)
+#define PRINT_CERT_NAME (gnutls_cli_opt_strs+2247)
/** Name string for the print-cert option */
-#define PRINT_CERT_name (gnutls_cli_opt_strs+2184)
+#define PRINT_CERT_name (gnutls_cli_opt_strs+2258)
/** Compiled in flag settings for the print-cert option */
#define PRINT_CERT_FLAGS (OPTST_DISABLED)
@@ -558,11 +574,11 @@ static int const aStarttls_ProtoCantList[] = {
* save-cert option description:
*/
/** Descriptive text for the save-cert option */
-#define SAVE_CERT_DESC (gnutls_cli_opt_strs+2195)
+#define SAVE_CERT_DESC (gnutls_cli_opt_strs+2269)
/** Upper-cased name for the save-cert option */
-#define SAVE_CERT_NAME (gnutls_cli_opt_strs+2265)
+#define SAVE_CERT_NAME (gnutls_cli_opt_strs+2339)
/** Name string for the save-cert option */
-#define SAVE_CERT_name (gnutls_cli_opt_strs+2275)
+#define SAVE_CERT_name (gnutls_cli_opt_strs+2349)
/** Compiled in flag settings for the save-cert option */
#define SAVE_CERT_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -571,11 +587,11 @@ static int const aStarttls_ProtoCantList[] = {
* save-ocsp option description:
*/
/** Descriptive text for the save-ocsp option */
-#define SAVE_OCSP_DESC (gnutls_cli_opt_strs+2285)
+#define SAVE_OCSP_DESC (gnutls_cli_opt_strs+2359)
/** Upper-cased name for the save-ocsp option */
-#define SAVE_OCSP_NAME (gnutls_cli_opt_strs+2343)
+#define SAVE_OCSP_NAME (gnutls_cli_opt_strs+2417)
/** Name string for the save-ocsp option */
-#define SAVE_OCSP_name (gnutls_cli_opt_strs+2353)
+#define SAVE_OCSP_name (gnutls_cli_opt_strs+2427)
/** Compiled in flag settings for the save-ocsp option */
#define SAVE_OCSP_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -584,11 +600,11 @@ static int const aStarttls_ProtoCantList[] = {
* save-server-trace option description:
*/
/** Descriptive text for the save-server-trace option */
-#define SAVE_SERVER_TRACE_DESC (gnutls_cli_opt_strs+2363)
+#define SAVE_SERVER_TRACE_DESC (gnutls_cli_opt_strs+2437)
/** Upper-cased name for the save-server-trace option */
-#define SAVE_SERVER_TRACE_NAME (gnutls_cli_opt_strs+2423)
+#define SAVE_SERVER_TRACE_NAME (gnutls_cli_opt_strs+2497)
/** Name string for the save-server-trace option */
-#define SAVE_SERVER_TRACE_name (gnutls_cli_opt_strs+2441)
+#define SAVE_SERVER_TRACE_name (gnutls_cli_opt_strs+2515)
/** Compiled in flag settings for the save-server-trace option */
#define SAVE_SERVER_TRACE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -597,11 +613,11 @@ static int const aStarttls_ProtoCantList[] = {
* save-client-trace option description:
*/
/** Descriptive text for the save-client-trace option */
-#define SAVE_CLIENT_TRACE_DESC (gnutls_cli_opt_strs+2459)
+#define SAVE_CLIENT_TRACE_DESC (gnutls_cli_opt_strs+2533)
/** Upper-cased name for the save-client-trace option */
-#define SAVE_CLIENT_TRACE_NAME (gnutls_cli_opt_strs+2519)
+#define SAVE_CLIENT_TRACE_NAME (gnutls_cli_opt_strs+2593)
/** Name string for the save-client-trace option */
-#define SAVE_CLIENT_TRACE_name (gnutls_cli_opt_strs+2537)
+#define SAVE_CLIENT_TRACE_name (gnutls_cli_opt_strs+2611)
/** Compiled in flag settings for the save-client-trace option */
#define SAVE_CLIENT_TRACE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -610,11 +626,11 @@ static int const aStarttls_ProtoCantList[] = {
* dh-bits option description:
*/
/** Descriptive text for the dh-bits option */
-#define DH_BITS_DESC (gnutls_cli_opt_strs+2555)
+#define DH_BITS_DESC (gnutls_cli_opt_strs+2629)
/** Upper-cased name for the dh-bits option */
-#define DH_BITS_NAME (gnutls_cli_opt_strs+2597)
+#define DH_BITS_NAME (gnutls_cli_opt_strs+2671)
/** Name string for the dh-bits option */
-#define DH_BITS_name (gnutls_cli_opt_strs+2605)
+#define DH_BITS_name (gnutls_cli_opt_strs+2679)
/** Compiled in flag settings for the dh-bits option */
#define DH_BITS_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -623,11 +639,11 @@ static int const aStarttls_ProtoCantList[] = {
* priority option description:
*/
/** Descriptive text for the priority option */
-#define PRIORITY_DESC (gnutls_cli_opt_strs+2613)
+#define PRIORITY_DESC (gnutls_cli_opt_strs+2687)
/** Upper-cased name for the priority option */
-#define PRIORITY_NAME (gnutls_cli_opt_strs+2631)
+#define PRIORITY_NAME (gnutls_cli_opt_strs+2705)
/** Name string for the priority option */
-#define PRIORITY_name (gnutls_cli_opt_strs+2640)
+#define PRIORITY_name (gnutls_cli_opt_strs+2714)
/** Compiled in flag settings for the priority option */
#define PRIORITY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -636,11 +652,11 @@ static int const aStarttls_ProtoCantList[] = {
* x509cafile option description:
*/
/** Descriptive text for the x509cafile option */
-#define X509CAFILE_DESC (gnutls_cli_opt_strs+2649)
+#define X509CAFILE_DESC (gnutls_cli_opt_strs+2723)
/** Upper-cased name for the x509cafile option */
-#define X509CAFILE_NAME (gnutls_cli_opt_strs+2689)
+#define X509CAFILE_NAME (gnutls_cli_opt_strs+2763)
/** Name string for the x509cafile option */
-#define X509CAFILE_name (gnutls_cli_opt_strs+2700)
+#define X509CAFILE_name (gnutls_cli_opt_strs+2774)
/** Compiled in flag settings for the x509cafile option */
#define X509CAFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -649,11 +665,11 @@ static int const aStarttls_ProtoCantList[] = {
* x509crlfile option description:
*/
/** Descriptive text for the x509crlfile option */
-#define X509CRLFILE_DESC (gnutls_cli_opt_strs+2711)
+#define X509CRLFILE_DESC (gnutls_cli_opt_strs+2785)
/** Upper-cased name for the x509crlfile option */
-#define X509CRLFILE_NAME (gnutls_cli_opt_strs+2727)
+#define X509CRLFILE_NAME (gnutls_cli_opt_strs+2801)
/** Name string for the x509crlfile option */
-#define X509CRLFILE_name (gnutls_cli_opt_strs+2739)
+#define X509CRLFILE_name (gnutls_cli_opt_strs+2813)
/** Compiled in flag settings for the x509crlfile option */
#define X509CRLFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
@@ -662,11 +678,11 @@ static int const aStarttls_ProtoCantList[] = {
* x509keyfile option description:
*/
/** Descriptive text for the x509keyfile option */
-#define X509KEYFILE_DESC (gnutls_cli_opt_strs+2751)
+#define X509KEYFILE_DESC (gnutls_cli_opt_strs+2825)
/** Upper-cased name for the x509keyfile option */
-#define X509KEYFILE_NAME (gnutls_cli_opt_strs+2789)
+#define X509KEYFILE_NAME (gnutls_cli_opt_strs+2863)
/** Name string for the x509keyfile option */
-#define X509KEYFILE_name (gnutls_cli_opt_strs+2801)
+#define X509KEYFILE_name (gnutls_cli_opt_strs+2875)
/** Compiled in flag settings for the x509keyfile option */
#define X509KEYFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -676,11 +692,11 @@ static int const aStarttls_ProtoCantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the x509certfile option */
-#define X509CERTFILE_DESC (gnutls_cli_opt_strs+2813)
+#define X509CERTFILE_DESC (gnutls_cli_opt_strs+2887)
/** Upper-cased name for the x509certfile option */
-#define X509CERTFILE_NAME (gnutls_cli_opt_strs+2859)
+#define X509CERTFILE_NAME (gnutls_cli_opt_strs+2933)
/** Name string for the x509certfile option */
-#define X509CERTFILE_name (gnutls_cli_opt_strs+2872)
+#define X509CERTFILE_name (gnutls_cli_opt_strs+2946)
/** Other options that are required by the x509certfile option */
static int const aX509certfileMustList[] = {
INDEX_OPT_X509KEYFILE, NO_EQUIVALENT };
@@ -692,11 +708,11 @@ static int const aX509certfileMustList[] = {
* srpusername option description:
*/
/** Descriptive text for the srpusername option */
-#define SRPUSERNAME_DESC (gnutls_cli_opt_strs+2885)
+#define SRPUSERNAME_DESC (gnutls_cli_opt_strs+2959)
/** Upper-cased name for the srpusername option */
-#define SRPUSERNAME_NAME (gnutls_cli_opt_strs+2905)
+#define SRPUSERNAME_NAME (gnutls_cli_opt_strs+2979)
/** Name string for the srpusername option */
-#define SRPUSERNAME_name (gnutls_cli_opt_strs+2917)
+#define SRPUSERNAME_name (gnutls_cli_opt_strs+2991)
/** Compiled in flag settings for the srpusername option */
#define SRPUSERNAME_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -705,11 +721,11 @@ static int const aX509certfileMustList[] = {
* srppasswd option description:
*/
/** Descriptive text for the srppasswd option */
-#define SRPPASSWD_DESC (gnutls_cli_opt_strs+2929)
+#define SRPPASSWD_DESC (gnutls_cli_opt_strs+3003)
/** Upper-cased name for the srppasswd option */
-#define SRPPASSWD_NAME (gnutls_cli_opt_strs+2949)
+#define SRPPASSWD_NAME (gnutls_cli_opt_strs+3023)
/** Name string for the srppasswd option */
-#define SRPPASSWD_name (gnutls_cli_opt_strs+2959)
+#define SRPPASSWD_name (gnutls_cli_opt_strs+3033)
/** Compiled in flag settings for the srppasswd option */
#define SRPPASSWD_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -718,11 +734,11 @@ static int const aX509certfileMustList[] = {
* pskusername option description:
*/
/** Descriptive text for the pskusername option */
-#define PSKUSERNAME_DESC (gnutls_cli_opt_strs+2969)
+#define PSKUSERNAME_DESC (gnutls_cli_opt_strs+3043)
/** Upper-cased name for the pskusername option */
-#define PSKUSERNAME_NAME (gnutls_cli_opt_strs+2989)
+#define PSKUSERNAME_NAME (gnutls_cli_opt_strs+3063)
/** Name string for the pskusername option */
-#define PSKUSERNAME_name (gnutls_cli_opt_strs+3001)
+#define PSKUSERNAME_name (gnutls_cli_opt_strs+3075)
/** Compiled in flag settings for the pskusername option */
#define PSKUSERNAME_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -731,11 +747,11 @@ static int const aX509certfileMustList[] = {
* pskkey option description:
*/
/** Descriptive text for the pskkey option */
-#define PSKKEY_DESC (gnutls_cli_opt_strs+3013)
+#define PSKKEY_DESC (gnutls_cli_opt_strs+3087)
/** Upper-cased name for the pskkey option */
-#define PSKKEY_NAME (gnutls_cli_opt_strs+3037)
+#define PSKKEY_NAME (gnutls_cli_opt_strs+3111)
/** Name string for the pskkey option */
-#define PSKKEY_name (gnutls_cli_opt_strs+3044)
+#define PSKKEY_name (gnutls_cli_opt_strs+3118)
/** Compiled in flag settings for the pskkey option */
#define PSKKEY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -744,11 +760,11 @@ static int const aX509certfileMustList[] = {
* port option description:
*/
/** Descriptive text for the port option */
-#define PORT_DESC (gnutls_cli_opt_strs+3051)
+#define PORT_DESC (gnutls_cli_opt_strs+3125)
/** Upper-cased name for the port option */
-#define PORT_NAME (gnutls_cli_opt_strs+3085)
+#define PORT_NAME (gnutls_cli_opt_strs+3159)
/** Name string for the port option */
-#define PORT_name (gnutls_cli_opt_strs+3090)
+#define PORT_name (gnutls_cli_opt_strs+3164)
/** Compiled in flag settings for the port option */
#define PORT_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -757,11 +773,11 @@ static int const aX509certfileMustList[] = {
* insecure option description:
*/
/** Descriptive text for the insecure option */
-#define INSECURE_DESC (gnutls_cli_opt_strs+3095)
+#define INSECURE_DESC (gnutls_cli_opt_strs+3169)
/** Upper-cased name for the insecure option */
-#define INSECURE_NAME (gnutls_cli_opt_strs+3156)
+#define INSECURE_NAME (gnutls_cli_opt_strs+3230)
/** Name string for the insecure option */
-#define INSECURE_name (gnutls_cli_opt_strs+3165)
+#define INSECURE_name (gnutls_cli_opt_strs+3239)
/** Compiled in flag settings for the insecure option */
#define INSECURE_FLAGS (OPTST_DISABLED)
@@ -769,11 +785,11 @@ static int const aX509certfileMustList[] = {
* verify-allow-broken option description:
*/
/** Descriptive text for the verify-allow-broken option */
-#define VERIFY_ALLOW_BROKEN_DESC (gnutls_cli_opt_strs+3174)
+#define VERIFY_ALLOW_BROKEN_DESC (gnutls_cli_opt_strs+3248)
/** Upper-cased name for the verify-allow-broken option */
-#define VERIFY_ALLOW_BROKEN_NAME (gnutls_cli_opt_strs+3240)
+#define VERIFY_ALLOW_BROKEN_NAME (gnutls_cli_opt_strs+3314)
/** Name string for the verify-allow-broken option */
-#define VERIFY_ALLOW_BROKEN_name (gnutls_cli_opt_strs+3260)
+#define VERIFY_ALLOW_BROKEN_name (gnutls_cli_opt_strs+3334)
/** Compiled in flag settings for the verify-allow-broken option */
#define VERIFY_ALLOW_BROKEN_FLAGS (OPTST_DISABLED)
@@ -781,11 +797,11 @@ static int const aX509certfileMustList[] = {
* ranges option description:
*/
/** Descriptive text for the ranges option */
-#define RANGES_DESC (gnutls_cli_opt_strs+3280)
+#define RANGES_DESC (gnutls_cli_opt_strs+3354)
/** Upper-cased name for the ranges option */
-#define RANGES_NAME (gnutls_cli_opt_strs+3347)
+#define RANGES_NAME (gnutls_cli_opt_strs+3421)
/** Name string for the ranges option */
-#define RANGES_name (gnutls_cli_opt_strs+3354)
+#define RANGES_name (gnutls_cli_opt_strs+3428)
/** Compiled in flag settings for the ranges option */
#define RANGES_FLAGS (OPTST_DISABLED | OPTST_DEPRECATED)
@@ -793,11 +809,11 @@ static int const aX509certfileMustList[] = {
* benchmark-ciphers option description:
*/
/** Descriptive text for the benchmark-ciphers option */
-#define BENCHMARK_CIPHERS_DESC (gnutls_cli_opt_strs+3361)
+#define BENCHMARK_CIPHERS_DESC (gnutls_cli_opt_strs+3435)
/** Upper-cased name for the benchmark-ciphers option */
-#define BENCHMARK_CIPHERS_NAME (gnutls_cli_opt_strs+3390)
+#define BENCHMARK_CIPHERS_NAME (gnutls_cli_opt_strs+3464)
/** Name string for the benchmark-ciphers option */
-#define BENCHMARK_CIPHERS_name (gnutls_cli_opt_strs+3408)
+#define BENCHMARK_CIPHERS_name (gnutls_cli_opt_strs+3482)
/** Compiled in flag settings for the benchmark-ciphers option */
#define BENCHMARK_CIPHERS_FLAGS (OPTST_DISABLED)
@@ -805,11 +821,11 @@ static int const aX509certfileMustList[] = {
* benchmark-tls-kx option description:
*/
/** Descriptive text for the benchmark-tls-kx option */
-#define BENCHMARK_TLS_KX_DESC (gnutls_cli_opt_strs+3426)
+#define BENCHMARK_TLS_KX_DESC (gnutls_cli_opt_strs+3500)
/** Upper-cased name for the benchmark-tls-kx option */
-#define BENCHMARK_TLS_KX_NAME (gnutls_cli_opt_strs+3461)
+#define BENCHMARK_TLS_KX_NAME (gnutls_cli_opt_strs+3535)
/** Name string for the benchmark-tls-kx option */
-#define BENCHMARK_TLS_KX_name (gnutls_cli_opt_strs+3478)
+#define BENCHMARK_TLS_KX_name (gnutls_cli_opt_strs+3552)
/** Compiled in flag settings for the benchmark-tls-kx option */
#define BENCHMARK_TLS_KX_FLAGS (OPTST_DISABLED)
@@ -817,11 +833,11 @@ static int const aX509certfileMustList[] = {
* benchmark-tls-ciphers option description:
*/
/** Descriptive text for the benchmark-tls-ciphers option */
-#define BENCHMARK_TLS_CIPHERS_DESC (gnutls_cli_opt_strs+3495)
+#define BENCHMARK_TLS_CIPHERS_DESC (gnutls_cli_opt_strs+3569)
/** Upper-cased name for the benchmark-tls-ciphers option */
-#define BENCHMARK_TLS_CIPHERS_NAME (gnutls_cli_opt_strs+3517)
+#define BENCHMARK_TLS_CIPHERS_NAME (gnutls_cli_opt_strs+3591)
/** Name string for the benchmark-tls-ciphers option */
-#define BENCHMARK_TLS_CIPHERS_name (gnutls_cli_opt_strs+3539)
+#define BENCHMARK_TLS_CIPHERS_name (gnutls_cli_opt_strs+3613)
/** Compiled in flag settings for the benchmark-tls-ciphers option */
#define BENCHMARK_TLS_CIPHERS_FLAGS (OPTST_DISABLED)
@@ -830,11 +846,11 @@ static int const aX509certfileMustList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the list option */
-#define LIST_DESC (gnutls_cli_opt_strs+3561)
+#define LIST_DESC (gnutls_cli_opt_strs+3635)
/** Upper-cased name for the list option */
-#define LIST_NAME (gnutls_cli_opt_strs+3612)
+#define LIST_NAME (gnutls_cli_opt_strs+3686)
/** Name string for the list option */
-#define LIST_name (gnutls_cli_opt_strs+3617)
+#define LIST_name (gnutls_cli_opt_strs+3691)
/** Other options that appear in conjunction with the list option */
static int const aListCantList[] = {
INDEX_OPT_PORT, NO_EQUIVALENT };
@@ -845,11 +861,11 @@ static int const aListCantList[] = {
* priority-list option description:
*/
/** Descriptive text for the priority-list option */
-#define PRIORITY_LIST_DESC (gnutls_cli_opt_strs+3622)
+#define PRIORITY_LIST_DESC (gnutls_cli_opt_strs+3696)
/** Upper-cased name for the priority-list option */
-#define PRIORITY_LIST_NAME (gnutls_cli_opt_strs+3669)
+#define PRIORITY_LIST_NAME (gnutls_cli_opt_strs+3743)
/** Name string for the priority-list option */
-#define PRIORITY_LIST_name (gnutls_cli_opt_strs+3683)
+#define PRIORITY_LIST_name (gnutls_cli_opt_strs+3757)
/** Compiled in flag settings for the priority-list option */
#define PRIORITY_LIST_FLAGS (OPTST_DISABLED)
@@ -857,11 +873,11 @@ static int const aListCantList[] = {
* noticket option description:
*/
/** Descriptive text for the noticket option */
-#define NOTICKET_DESC (gnutls_cli_opt_strs+3697)
+#define NOTICKET_DESC (gnutls_cli_opt_strs+3771)
/** Upper-cased name for the noticket option */
-#define NOTICKET_NAME (gnutls_cli_opt_strs+3725)
+#define NOTICKET_NAME (gnutls_cli_opt_strs+3799)
/** Name string for the noticket option */
-#define NOTICKET_name (gnutls_cli_opt_strs+3734)
+#define NOTICKET_name (gnutls_cli_opt_strs+3808)
/** Compiled in flag settings for the noticket option */
#define NOTICKET_FLAGS (OPTST_DISABLED)
@@ -869,11 +885,11 @@ static int const aListCantList[] = {
* srtp_profiles option description:
*/
/** Descriptive text for the srtp_profiles option */
-#define SRTP_PROFILES_DESC (gnutls_cli_opt_strs+3743)
+#define SRTP_PROFILES_DESC (gnutls_cli_opt_strs+3817)
/** Upper-cased name for the srtp_profiles option */
-#define SRTP_PROFILES_NAME (gnutls_cli_opt_strs+3763)
+#define SRTP_PROFILES_NAME (gnutls_cli_opt_strs+3837)
/** Name string for the srtp_profiles option */
-#define SRTP_PROFILES_name (gnutls_cli_opt_strs+3777)
+#define SRTP_PROFILES_name (gnutls_cli_opt_strs+3851)
/** Compiled in flag settings for the srtp_profiles option */
#define SRTP_PROFILES_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -882,11 +898,11 @@ static int const aListCantList[] = {
* alpn option description:
*/
/** Descriptive text for the alpn option */
-#define ALPN_DESC (gnutls_cli_opt_strs+3791)
+#define ALPN_DESC (gnutls_cli_opt_strs+3865)
/** Upper-cased name for the alpn option */
-#define ALPN_NAME (gnutls_cli_opt_strs+3818)
+#define ALPN_NAME (gnutls_cli_opt_strs+3892)
/** Name string for the alpn option */
-#define ALPN_name (gnutls_cli_opt_strs+3823)
+#define ALPN_name (gnutls_cli_opt_strs+3897)
/** Compiled in flag settings for the alpn option */
#define ALPN_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -895,11 +911,11 @@ static int const aListCantList[] = {
* heartbeat option description:
*/
/** Descriptive text for the heartbeat option */
-#define HEARTBEAT_DESC (gnutls_cli_opt_strs+3828)
+#define HEARTBEAT_DESC (gnutls_cli_opt_strs+3902)
/** Upper-cased name for the heartbeat option */
-#define HEARTBEAT_NAME (gnutls_cli_opt_strs+3855)
+#define HEARTBEAT_NAME (gnutls_cli_opt_strs+3929)
/** Name string for the heartbeat option */
-#define HEARTBEAT_name (gnutls_cli_opt_strs+3865)
+#define HEARTBEAT_name (gnutls_cli_opt_strs+3939)
/** Compiled in flag settings for the heartbeat option */
#define HEARTBEAT_FLAGS (OPTST_DISABLED)
@@ -907,11 +923,11 @@ static int const aListCantList[] = {
* recordsize option description:
*/
/** Descriptive text for the recordsize option */
-#define RECORDSIZE_DESC (gnutls_cli_opt_strs+3875)
+#define RECORDSIZE_DESC (gnutls_cli_opt_strs+3949)
/** Upper-cased name for the recordsize option */
-#define RECORDSIZE_NAME (gnutls_cli_opt_strs+3912)
+#define RECORDSIZE_NAME (gnutls_cli_opt_strs+3986)
/** Name string for the recordsize option */
-#define RECORDSIZE_name (gnutls_cli_opt_strs+3923)
+#define RECORDSIZE_name (gnutls_cli_opt_strs+3997)
/** Compiled in flag settings for the recordsize option */
#define RECORDSIZE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -920,11 +936,11 @@ static int const aListCantList[] = {
* disable-sni option description:
*/
/** Descriptive text for the disable-sni option */
-#define DISABLE_SNI_DESC (gnutls_cli_opt_strs+3934)
+#define DISABLE_SNI_DESC (gnutls_cli_opt_strs+4008)
/** Upper-cased name for the disable-sni option */
-#define DISABLE_SNI_NAME (gnutls_cli_opt_strs+3977)
+#define DISABLE_SNI_NAME (gnutls_cli_opt_strs+4051)
/** Name string for the disable-sni option */
-#define DISABLE_SNI_name (gnutls_cli_opt_strs+3989)
+#define DISABLE_SNI_name (gnutls_cli_opt_strs+4063)
/** Compiled in flag settings for the disable-sni option */
#define DISABLE_SNI_FLAGS (OPTST_DISABLED)
@@ -932,11 +948,11 @@ static int const aListCantList[] = {
* disable-extensions option description:
*/
/** Descriptive text for the disable-extensions option */
-#define DISABLE_EXTENSIONS_DESC (gnutls_cli_opt_strs+4001)
+#define DISABLE_EXTENSIONS_DESC (gnutls_cli_opt_strs+4075)
/** Upper-cased name for the disable-extensions option */
-#define DISABLE_EXTENSIONS_NAME (gnutls_cli_opt_strs+4045)
+#define DISABLE_EXTENSIONS_NAME (gnutls_cli_opt_strs+4119)
/** Name string for the disable-extensions option */
-#define DISABLE_EXTENSIONS_name (gnutls_cli_opt_strs+4064)
+#define DISABLE_EXTENSIONS_name (gnutls_cli_opt_strs+4138)
/** Compiled in flag settings for the disable-extensions option */
#define DISABLE_EXTENSIONS_FLAGS (OPTST_DISABLED | OPTST_DEPRECATED)
@@ -944,11 +960,11 @@ static int const aListCantList[] = {
* single-key-share option description:
*/
/** Descriptive text for the single-key-share option */
-#define SINGLE_KEY_SHARE_DESC (gnutls_cli_opt_strs+4083)
+#define SINGLE_KEY_SHARE_DESC (gnutls_cli_opt_strs+4157)
/** Upper-cased name for the single-key-share option */
-#define SINGLE_KEY_SHARE_NAME (gnutls_cli_opt_strs+4120)
+#define SINGLE_KEY_SHARE_NAME (gnutls_cli_opt_strs+4194)
/** Name string for the single-key-share option */
-#define SINGLE_KEY_SHARE_name (gnutls_cli_opt_strs+4137)
+#define SINGLE_KEY_SHARE_name (gnutls_cli_opt_strs+4211)
/** Compiled in flag settings for the single-key-share option */
#define SINGLE_KEY_SHARE_FLAGS (OPTST_DISABLED)
@@ -956,11 +972,11 @@ static int const aListCantList[] = {
* post-handshake-auth option description:
*/
/** Descriptive text for the post-handshake-auth option */
-#define POST_HANDSHAKE_AUTH_DESC (gnutls_cli_opt_strs+4154)
+#define POST_HANDSHAKE_AUTH_DESC (gnutls_cli_opt_strs+4228)
/** Upper-cased name for the post-handshake-auth option */
-#define POST_HANDSHAKE_AUTH_NAME (gnutls_cli_opt_strs+4204)
+#define POST_HANDSHAKE_AUTH_NAME (gnutls_cli_opt_strs+4278)
/** Name string for the post-handshake-auth option */
-#define POST_HANDSHAKE_AUTH_name (gnutls_cli_opt_strs+4224)
+#define POST_HANDSHAKE_AUTH_name (gnutls_cli_opt_strs+4298)
/** Compiled in flag settings for the post-handshake-auth option */
#define POST_HANDSHAKE_AUTH_FLAGS (OPTST_DISABLED)
@@ -968,11 +984,11 @@ static int const aListCantList[] = {
* inline-commands option description:
*/
/** Descriptive text for the inline-commands option */
-#define INLINE_COMMANDS_DESC (gnutls_cli_opt_strs+4244)
+#define INLINE_COMMANDS_DESC (gnutls_cli_opt_strs+4318)
/** Upper-cased name for the inline-commands option */
-#define INLINE_COMMANDS_NAME (gnutls_cli_opt_strs+4280)
+#define INLINE_COMMANDS_NAME (gnutls_cli_opt_strs+4354)
/** Name string for the inline-commands option */
-#define INLINE_COMMANDS_name (gnutls_cli_opt_strs+4296)
+#define INLINE_COMMANDS_name (gnutls_cli_opt_strs+4370)
/** Compiled in flag settings for the inline-commands option */
#define INLINE_COMMANDS_FLAGS (OPTST_DISABLED)
@@ -980,11 +996,11 @@ static int const aListCantList[] = {
* inline-commands-prefix option description:
*/
/** Descriptive text for the inline-commands-prefix option */
-#define INLINE_COMMANDS_PREFIX_DESC (gnutls_cli_opt_strs+4312)
+#define INLINE_COMMANDS_PREFIX_DESC (gnutls_cli_opt_strs+4386)
/** Upper-cased name for the inline-commands-prefix option */
-#define INLINE_COMMANDS_PREFIX_NAME (gnutls_cli_opt_strs+4362)
+#define INLINE_COMMANDS_PREFIX_NAME (gnutls_cli_opt_strs+4436)
/** Name string for the inline-commands-prefix option */
-#define INLINE_COMMANDS_PREFIX_name (gnutls_cli_opt_strs+4385)
+#define INLINE_COMMANDS_PREFIX_name (gnutls_cli_opt_strs+4459)
/** Compiled in flag settings for the inline-commands-prefix option */
#define INLINE_COMMANDS_PREFIX_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -993,11 +1009,11 @@ static int const aListCantList[] = {
* provider option description:
*/
/** Descriptive text for the provider option */
-#define PROVIDER_DESC (gnutls_cli_opt_strs+4408)
+#define PROVIDER_DESC (gnutls_cli_opt_strs+4482)
/** Upper-cased name for the provider option */
-#define PROVIDER_NAME (gnutls_cli_opt_strs+4446)
+#define PROVIDER_NAME (gnutls_cli_opt_strs+4520)
/** Name string for the provider option */
-#define PROVIDER_name (gnutls_cli_opt_strs+4455)
+#define PROVIDER_name (gnutls_cli_opt_strs+4529)
/** Compiled in flag settings for the provider option */
#define PROVIDER_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
@@ -1006,22 +1022,22 @@ static int const aListCantList[] = {
* fips140-mode option description:
*/
/** Descriptive text for the fips140-mode option */
-#define FIPS140_MODE_DESC (gnutls_cli_opt_strs+4464)
+#define FIPS140_MODE_DESC (gnutls_cli_opt_strs+4538)
/** Upper-cased name for the fips140-mode option */
-#define FIPS140_MODE_NAME (gnutls_cli_opt_strs+4523)
+#define FIPS140_MODE_NAME (gnutls_cli_opt_strs+4597)
/** Name string for the fips140-mode option */
-#define FIPS140_MODE_name (gnutls_cli_opt_strs+4536)
+#define FIPS140_MODE_name (gnutls_cli_opt_strs+4610)
/** Compiled in flag settings for the fips140-mode option */
#define FIPS140_MODE_FLAGS (OPTST_DISABLED)
/*
* Help/More_Help/Version option descriptions:
*/
-#define HELP_DESC (gnutls_cli_opt_strs+4549)
-#define HELP_name (gnutls_cli_opt_strs+4593)
+#define HELP_DESC (gnutls_cli_opt_strs+4623)
+#define HELP_name (gnutls_cli_opt_strs+4667)
#ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC (gnutls_cli_opt_strs+4598)
-#define MORE_HELP_name (gnutls_cli_opt_strs+4643)
+#define MORE_HELP_DESC (gnutls_cli_opt_strs+4672)
+#define MORE_HELP_name (gnutls_cli_opt_strs+4717)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
@@ -1034,8 +1050,8 @@ static int const aListCantList[] = {
# 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+4653)
-#define VER_name (gnutls_cli_opt_strs+4689)
+#define VER_DESC (gnutls_cli_opt_strs+4727)
+#define VER_name (gnutls_cli_opt_strs+4763)
/**
* Declare option callback procedures
*/
@@ -1164,8 +1180,20 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ RESUME_DESC, RESUME_NAME, RESUME_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 9, VALUE_OPT_REHANDSHAKE,
- /* equiv idx, value */ 9, VALUE_OPT_REHANDSHAKE,
+ { /* entry idx, value */ 9, VALUE_OPT_EARLYDATA,
+ /* equiv idx, value */ 9, VALUE_OPT_EARLYDATA,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ EARLYDATA_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --earlydata */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ NULL,
+ /* desc, NAME, name */ EARLYDATA_DESC, EARLYDATA_NAME, EARLYDATA_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 10, VALUE_OPT_REHANDSHAKE,
+ /* equiv idx, value */ 10, VALUE_OPT_REHANDSHAKE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ REHANDSHAKE_FLAGS, 0,
@@ -1176,8 +1204,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ REHANDSHAKE_DESC, REHANDSHAKE_NAME, REHANDSHAKE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 10, VALUE_OPT_SNI_HOSTNAME,
- /* equiv idx, value */ 10, VALUE_OPT_SNI_HOSTNAME,
+ { /* entry idx, value */ 11, VALUE_OPT_SNI_HOSTNAME,
+ /* equiv idx, value */ 11, VALUE_OPT_SNI_HOSTNAME,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SNI_HOSTNAME_FLAGS, 0,
@@ -1188,8 +1216,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SNI_HOSTNAME_DESC, SNI_HOSTNAME_NAME, SNI_HOSTNAME_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 11, VALUE_OPT_VERIFY_HOSTNAME,
- /* equiv idx, value */ 11, VALUE_OPT_VERIFY_HOSTNAME,
+ { /* entry idx, value */ 12, VALUE_OPT_VERIFY_HOSTNAME,
+ /* equiv idx, value */ 12, VALUE_OPT_VERIFY_HOSTNAME,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ VERIFY_HOSTNAME_FLAGS, 0,
@@ -1200,8 +1228,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ VERIFY_HOSTNAME_DESC, VERIFY_HOSTNAME_NAME, VERIFY_HOSTNAME_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 12, VALUE_OPT_STARTTLS,
- /* equiv idx, value */ 12, VALUE_OPT_STARTTLS,
+ { /* entry idx, value */ 13, VALUE_OPT_STARTTLS,
+ /* equiv idx, value */ 13, VALUE_OPT_STARTTLS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ STARTTLS_FLAGS, 0,
@@ -1212,8 +1240,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ STARTTLS_DESC, STARTTLS_NAME, STARTTLS_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 13, VALUE_OPT_APP_PROTO,
- /* equiv idx, value */ 13, VALUE_OPT_APP_PROTO,
+ { /* entry idx, value */ 14, VALUE_OPT_APP_PROTO,
+ /* equiv idx, value */ 14, VALUE_OPT_APP_PROTO,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ APP_PROTO_FLAGS, 0,
@@ -1224,8 +1252,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ APP_PROTO_DESC, APP_PROTO_NAME, APP_PROTO_name,
/* disablement strs */ 0, 0 },
- { /* entry idx, value */ 14, VALUE_OPT_STARTTLS_PROTO,
- /* equiv idx, value */ 14, VALUE_OPT_STARTTLS_PROTO,
+ { /* entry idx, value */ 15, VALUE_OPT_STARTTLS_PROTO,
+ /* equiv idx, value */ 15, VALUE_OPT_STARTTLS_PROTO,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ STARTTLS_PROTO_FLAGS, 0,
@@ -1236,8 +1264,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ STARTTLS_PROTO_DESC, STARTTLS_PROTO_NAME, STARTTLS_PROTO_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 15, VALUE_OPT_UDP,
- /* equiv idx, value */ 15, VALUE_OPT_UDP,
+ { /* entry idx, value */ 16, VALUE_OPT_UDP,
+ /* equiv idx, value */ 16, VALUE_OPT_UDP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ UDP_FLAGS, 0,
@@ -1248,8 +1276,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ UDP_DESC, UDP_NAME, UDP_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 16, VALUE_OPT_MTU,
- /* equiv idx, value */ 16, VALUE_OPT_MTU,
+ { /* entry idx, value */ 17, VALUE_OPT_MTU,
+ /* equiv idx, value */ 17, VALUE_OPT_MTU,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MTU_FLAGS, 0,
@@ -1260,8 +1288,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ MTU_DESC, MTU_NAME, MTU_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 17, VALUE_OPT_CRLF,
- /* equiv idx, value */ 17, VALUE_OPT_CRLF,
+ { /* entry idx, value */ 18, VALUE_OPT_CRLF,
+ /* equiv idx, value */ 18, VALUE_OPT_CRLF,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ CRLF_FLAGS, 0,
@@ -1272,8 +1300,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ CRLF_DESC, CRLF_NAME, CRLF_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 18, VALUE_OPT_FASTOPEN,
- /* equiv idx, value */ 18, VALUE_OPT_FASTOPEN,
+ { /* entry idx, value */ 19, VALUE_OPT_FASTOPEN,
+ /* equiv idx, value */ 19, VALUE_OPT_FASTOPEN,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ FASTOPEN_FLAGS, 0,
@@ -1284,8 +1312,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ FASTOPEN_DESC, FASTOPEN_NAME, FASTOPEN_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 19, VALUE_OPT_X509FMTDER,
- /* equiv idx, value */ 19, VALUE_OPT_X509FMTDER,
+ { /* entry idx, value */ 20, VALUE_OPT_X509FMTDER,
+ /* equiv idx, value */ 20, VALUE_OPT_X509FMTDER,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ X509FMTDER_FLAGS, 0,
@@ -1296,8 +1324,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ X509FMTDER_DESC, X509FMTDER_NAME, X509FMTDER_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 20, VALUE_OPT_PRINT_CERT,
- /* equiv idx, value */ 20, VALUE_OPT_PRINT_CERT,
+ { /* entry idx, value */ 21, VALUE_OPT_PRINT_CERT,
+ /* equiv idx, value */ 21, VALUE_OPT_PRINT_CERT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PRINT_CERT_FLAGS, 0,
@@ -1308,8 +1336,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ PRINT_CERT_DESC, PRINT_CERT_NAME, PRINT_CERT_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 21, VALUE_OPT_SAVE_CERT,
- /* equiv idx, value */ 21, VALUE_OPT_SAVE_CERT,
+ { /* entry idx, value */ 22, VALUE_OPT_SAVE_CERT,
+ /* equiv idx, value */ 22, VALUE_OPT_SAVE_CERT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SAVE_CERT_FLAGS, 0,
@@ -1320,8 +1348,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SAVE_CERT_DESC, SAVE_CERT_NAME, SAVE_CERT_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 22, VALUE_OPT_SAVE_OCSP,
- /* equiv idx, value */ 22, VALUE_OPT_SAVE_OCSP,
+ { /* entry idx, value */ 23, VALUE_OPT_SAVE_OCSP,
+ /* equiv idx, value */ 23, VALUE_OPT_SAVE_OCSP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SAVE_OCSP_FLAGS, 0,
@@ -1332,8 +1360,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SAVE_OCSP_DESC, SAVE_OCSP_NAME, SAVE_OCSP_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 23, VALUE_OPT_SAVE_SERVER_TRACE,
- /* equiv idx, value */ 23, VALUE_OPT_SAVE_SERVER_TRACE,
+ { /* entry idx, value */ 24, VALUE_OPT_SAVE_SERVER_TRACE,
+ /* equiv idx, value */ 24, VALUE_OPT_SAVE_SERVER_TRACE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SAVE_SERVER_TRACE_FLAGS, 0,
@@ -1344,8 +1372,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SAVE_SERVER_TRACE_DESC, SAVE_SERVER_TRACE_NAME, SAVE_SERVER_TRACE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 24, VALUE_OPT_SAVE_CLIENT_TRACE,
- /* equiv idx, value */ 24, VALUE_OPT_SAVE_CLIENT_TRACE,
+ { /* entry idx, value */ 25, VALUE_OPT_SAVE_CLIENT_TRACE,
+ /* equiv idx, value */ 25, VALUE_OPT_SAVE_CLIENT_TRACE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SAVE_CLIENT_TRACE_FLAGS, 0,
@@ -1356,8 +1384,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SAVE_CLIENT_TRACE_DESC, SAVE_CLIENT_TRACE_NAME, SAVE_CLIENT_TRACE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 25, VALUE_OPT_DH_BITS,
- /* equiv idx, value */ 25, VALUE_OPT_DH_BITS,
+ { /* entry idx, value */ 26, VALUE_OPT_DH_BITS,
+ /* equiv idx, value */ 26, VALUE_OPT_DH_BITS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ DH_BITS_FLAGS, 0,
@@ -1368,8 +1396,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ DH_BITS_DESC, DH_BITS_NAME, DH_BITS_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 26, VALUE_OPT_PRIORITY,
- /* equiv idx, value */ 26, VALUE_OPT_PRIORITY,
+ { /* entry idx, value */ 27, VALUE_OPT_PRIORITY,
+ /* equiv idx, value */ 27, VALUE_OPT_PRIORITY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PRIORITY_FLAGS, 0,
@@ -1380,8 +1408,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ PRIORITY_DESC, PRIORITY_NAME, PRIORITY_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 27, VALUE_OPT_X509CAFILE,
- /* equiv idx, value */ 27, VALUE_OPT_X509CAFILE,
+ { /* entry idx, value */ 28, VALUE_OPT_X509CAFILE,
+ /* equiv idx, value */ 28, VALUE_OPT_X509CAFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ X509CAFILE_FLAGS, 0,
@@ -1392,8 +1420,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ X509CAFILE_DESC, X509CAFILE_NAME, X509CAFILE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 28, VALUE_OPT_X509CRLFILE,
- /* equiv idx, value */ 28, VALUE_OPT_X509CRLFILE,
+ { /* entry idx, value */ 29, VALUE_OPT_X509CRLFILE,
+ /* equiv idx, value */ 29, VALUE_OPT_X509CRLFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ X509CRLFILE_FLAGS, 0,
@@ -1404,8 +1432,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ X509CRLFILE_DESC, X509CRLFILE_NAME, X509CRLFILE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 29, VALUE_OPT_X509KEYFILE,
- /* equiv idx, value */ 29, VALUE_OPT_X509KEYFILE,
+ { /* entry idx, value */ 30, VALUE_OPT_X509KEYFILE,
+ /* equiv idx, value */ 30, VALUE_OPT_X509KEYFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ X509KEYFILE_FLAGS, 0,
@@ -1416,8 +1444,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ X509KEYFILE_DESC, X509KEYFILE_NAME, X509KEYFILE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 30, VALUE_OPT_X509CERTFILE,
- /* equiv idx, value */ 30, VALUE_OPT_X509CERTFILE,
+ { /* entry idx, value */ 31, VALUE_OPT_X509CERTFILE,
+ /* equiv idx, value */ 31, VALUE_OPT_X509CERTFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ X509CERTFILE_FLAGS, 0,
@@ -1428,8 +1456,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ X509CERTFILE_DESC, X509CERTFILE_NAME, X509CERTFILE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 31, VALUE_OPT_SRPUSERNAME,
- /* equiv idx, value */ 31, VALUE_OPT_SRPUSERNAME,
+ { /* entry idx, value */ 32, VALUE_OPT_SRPUSERNAME,
+ /* equiv idx, value */ 32, VALUE_OPT_SRPUSERNAME,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SRPUSERNAME_FLAGS, 0,
@@ -1440,8 +1468,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SRPUSERNAME_DESC, SRPUSERNAME_NAME, SRPUSERNAME_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 32, VALUE_OPT_SRPPASSWD,
- /* equiv idx, value */ 32, VALUE_OPT_SRPPASSWD,
+ { /* entry idx, value */ 33, VALUE_OPT_SRPPASSWD,
+ /* equiv idx, value */ 33, VALUE_OPT_SRPPASSWD,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SRPPASSWD_FLAGS, 0,
@@ -1452,8 +1480,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SRPPASSWD_DESC, SRPPASSWD_NAME, SRPPASSWD_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 33, VALUE_OPT_PSKUSERNAME,
- /* equiv idx, value */ 33, VALUE_OPT_PSKUSERNAME,
+ { /* entry idx, value */ 34, VALUE_OPT_PSKUSERNAME,
+ /* equiv idx, value */ 34, VALUE_OPT_PSKUSERNAME,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PSKUSERNAME_FLAGS, 0,
@@ -1464,8 +1492,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ PSKUSERNAME_DESC, PSKUSERNAME_NAME, PSKUSERNAME_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 34, VALUE_OPT_PSKKEY,
- /* equiv idx, value */ 34, VALUE_OPT_PSKKEY,
+ { /* entry idx, value */ 35, VALUE_OPT_PSKKEY,
+ /* equiv idx, value */ 35, VALUE_OPT_PSKKEY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PSKKEY_FLAGS, 0,
@@ -1476,8 +1504,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ PSKKEY_DESC, PSKKEY_NAME, PSKKEY_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 35, VALUE_OPT_PORT,
- /* equiv idx, value */ 35, VALUE_OPT_PORT,
+ { /* entry idx, value */ 36, VALUE_OPT_PORT,
+ /* equiv idx, value */ 36, VALUE_OPT_PORT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PORT_FLAGS, 0,
@@ -1488,8 +1516,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ PORT_DESC, PORT_NAME, PORT_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 36, VALUE_OPT_INSECURE,
- /* equiv idx, value */ 36, VALUE_OPT_INSECURE,
+ { /* entry idx, value */ 37, VALUE_OPT_INSECURE,
+ /* equiv idx, value */ 37, VALUE_OPT_INSECURE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ INSECURE_FLAGS, 0,
@@ -1500,8 +1528,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ INSECURE_DESC, INSECURE_NAME, INSECURE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 37, VALUE_OPT_VERIFY_ALLOW_BROKEN,
- /* equiv idx, value */ 37, VALUE_OPT_VERIFY_ALLOW_BROKEN,
+ { /* entry idx, value */ 38, VALUE_OPT_VERIFY_ALLOW_BROKEN,
+ /* equiv idx, value */ 38, VALUE_OPT_VERIFY_ALLOW_BROKEN,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ VERIFY_ALLOW_BROKEN_FLAGS, 0,
@@ -1512,8 +1540,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ VERIFY_ALLOW_BROKEN_DESC, VERIFY_ALLOW_BROKEN_NAME, VERIFY_ALLOW_BROKEN_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 38, VALUE_OPT_RANGES,
- /* equiv idx, value */ 38, VALUE_OPT_RANGES,
+ { /* entry idx, value */ 39, VALUE_OPT_RANGES,
+ /* equiv idx, value */ 39, VALUE_OPT_RANGES,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ RANGES_FLAGS, 0,
@@ -1524,8 +1552,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ RANGES_DESC, RANGES_NAME, RANGES_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 39, VALUE_OPT_BENCHMARK_CIPHERS,
- /* equiv idx, value */ 39, VALUE_OPT_BENCHMARK_CIPHERS,
+ { /* entry idx, value */ 40, VALUE_OPT_BENCHMARK_CIPHERS,
+ /* equiv idx, value */ 40, VALUE_OPT_BENCHMARK_CIPHERS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ BENCHMARK_CIPHERS_FLAGS, 0,
@@ -1536,8 +1564,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ BENCHMARK_CIPHERS_DESC, BENCHMARK_CIPHERS_NAME, BENCHMARK_CIPHERS_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 40, VALUE_OPT_BENCHMARK_TLS_KX,
- /* equiv idx, value */ 40, VALUE_OPT_BENCHMARK_TLS_KX,
+ { /* entry idx, value */ 41, VALUE_OPT_BENCHMARK_TLS_KX,
+ /* equiv idx, value */ 41, VALUE_OPT_BENCHMARK_TLS_KX,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ BENCHMARK_TLS_KX_FLAGS, 0,
@@ -1548,8 +1576,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ BENCHMARK_TLS_KX_DESC, BENCHMARK_TLS_KX_NAME, BENCHMARK_TLS_KX_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 41, VALUE_OPT_BENCHMARK_TLS_CIPHERS,
- /* equiv idx, value */ 41, VALUE_OPT_BENCHMARK_TLS_CIPHERS,
+ { /* entry idx, value */ 42, VALUE_OPT_BENCHMARK_TLS_CIPHERS,
+ /* equiv idx, value */ 42, VALUE_OPT_BENCHMARK_TLS_CIPHERS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ BENCHMARK_TLS_CIPHERS_FLAGS, 0,
@@ -1560,8 +1588,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ BENCHMARK_TLS_CIPHERS_DESC, BENCHMARK_TLS_CIPHERS_NAME, BENCHMARK_TLS_CIPHERS_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 42, VALUE_OPT_LIST,
- /* equiv idx, value */ 42, VALUE_OPT_LIST,
+ { /* entry idx, value */ 43, VALUE_OPT_LIST,
+ /* equiv idx, value */ 43, VALUE_OPT_LIST,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LIST_FLAGS, 0,
@@ -1572,8 +1600,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ LIST_DESC, LIST_NAME, LIST_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 43, VALUE_OPT_PRIORITY_LIST,
- /* equiv idx, value */ 43, VALUE_OPT_PRIORITY_LIST,
+ { /* entry idx, value */ 44, VALUE_OPT_PRIORITY_LIST,
+ /* equiv idx, value */ 44, VALUE_OPT_PRIORITY_LIST,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PRIORITY_LIST_FLAGS, 0,
@@ -1584,8 +1612,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ PRIORITY_LIST_DESC, PRIORITY_LIST_NAME, PRIORITY_LIST_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 44, VALUE_OPT_NOTICKET,
- /* equiv idx, value */ 44, VALUE_OPT_NOTICKET,
+ { /* entry idx, value */ 45, VALUE_OPT_NOTICKET,
+ /* equiv idx, value */ 45, VALUE_OPT_NOTICKET,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ NOTICKET_FLAGS, 0,
@@ -1596,8 +1624,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ NOTICKET_DESC, NOTICKET_NAME, NOTICKET_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 45, VALUE_OPT_SRTP_PROFILES,
- /* equiv idx, value */ 45, VALUE_OPT_SRTP_PROFILES,
+ { /* entry idx, value */ 46, VALUE_OPT_SRTP_PROFILES,
+ /* equiv idx, value */ 46, VALUE_OPT_SRTP_PROFILES,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SRTP_PROFILES_FLAGS, 0,
@@ -1608,8 +1636,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SRTP_PROFILES_DESC, SRTP_PROFILES_NAME, SRTP_PROFILES_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 46, VALUE_OPT_ALPN,
- /* equiv idx, value */ 46, VALUE_OPT_ALPN,
+ { /* entry idx, value */ 47, VALUE_OPT_ALPN,
+ /* equiv idx, value */ 47, VALUE_OPT_ALPN,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ ALPN_FLAGS, 0,
@@ -1620,8 +1648,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ ALPN_DESC, ALPN_NAME, ALPN_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 47, VALUE_OPT_HEARTBEAT,
- /* equiv idx, value */ 47, VALUE_OPT_HEARTBEAT,
+ { /* entry idx, value */ 48, VALUE_OPT_HEARTBEAT,
+ /* equiv idx, value */ 48, VALUE_OPT_HEARTBEAT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ HEARTBEAT_FLAGS, 0,
@@ -1632,8 +1660,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ HEARTBEAT_DESC, HEARTBEAT_NAME, HEARTBEAT_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 48, VALUE_OPT_RECORDSIZE,
- /* equiv idx, value */ 48, VALUE_OPT_RECORDSIZE,
+ { /* entry idx, value */ 49, VALUE_OPT_RECORDSIZE,
+ /* equiv idx, value */ 49, VALUE_OPT_RECORDSIZE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ RECORDSIZE_FLAGS, 0,
@@ -1644,8 +1672,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ RECORDSIZE_DESC, RECORDSIZE_NAME, RECORDSIZE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 49, VALUE_OPT_DISABLE_SNI,
- /* equiv idx, value */ 49, VALUE_OPT_DISABLE_SNI,
+ { /* entry idx, value */ 50, VALUE_OPT_DISABLE_SNI,
+ /* equiv idx, value */ 50, VALUE_OPT_DISABLE_SNI,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ DISABLE_SNI_FLAGS, 0,
@@ -1656,8 +1684,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ DISABLE_SNI_DESC, DISABLE_SNI_NAME, DISABLE_SNI_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 50, VALUE_OPT_DISABLE_EXTENSIONS,
- /* equiv idx, value */ 50, VALUE_OPT_DISABLE_EXTENSIONS,
+ { /* entry idx, value */ 51, VALUE_OPT_DISABLE_EXTENSIONS,
+ /* equiv idx, value */ 51, VALUE_OPT_DISABLE_EXTENSIONS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ DISABLE_EXTENSIONS_FLAGS, 0,
@@ -1668,8 +1696,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ DISABLE_EXTENSIONS_DESC, DISABLE_EXTENSIONS_NAME, DISABLE_EXTENSIONS_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 51, VALUE_OPT_SINGLE_KEY_SHARE,
- /* equiv idx, value */ 51, VALUE_OPT_SINGLE_KEY_SHARE,
+ { /* entry idx, value */ 52, VALUE_OPT_SINGLE_KEY_SHARE,
+ /* equiv idx, value */ 52, VALUE_OPT_SINGLE_KEY_SHARE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SINGLE_KEY_SHARE_FLAGS, 0,
@@ -1680,8 +1708,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SINGLE_KEY_SHARE_DESC, SINGLE_KEY_SHARE_NAME, SINGLE_KEY_SHARE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 52, VALUE_OPT_POST_HANDSHAKE_AUTH,
- /* equiv idx, value */ 52, VALUE_OPT_POST_HANDSHAKE_AUTH,
+ { /* entry idx, value */ 53, VALUE_OPT_POST_HANDSHAKE_AUTH,
+ /* equiv idx, value */ 53, VALUE_OPT_POST_HANDSHAKE_AUTH,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ POST_HANDSHAKE_AUTH_FLAGS, 0,
@@ -1692,8 +1720,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ POST_HANDSHAKE_AUTH_DESC, POST_HANDSHAKE_AUTH_NAME, POST_HANDSHAKE_AUTH_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 53, VALUE_OPT_INLINE_COMMANDS,
- /* equiv idx, value */ 53, VALUE_OPT_INLINE_COMMANDS,
+ { /* entry idx, value */ 54, VALUE_OPT_INLINE_COMMANDS,
+ /* equiv idx, value */ 54, VALUE_OPT_INLINE_COMMANDS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ INLINE_COMMANDS_FLAGS, 0,
@@ -1704,8 +1732,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ INLINE_COMMANDS_DESC, INLINE_COMMANDS_NAME, INLINE_COMMANDS_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 54, VALUE_OPT_INLINE_COMMANDS_PREFIX,
- /* equiv idx, value */ 54, VALUE_OPT_INLINE_COMMANDS_PREFIX,
+ { /* entry idx, value */ 55, VALUE_OPT_INLINE_COMMANDS_PREFIX,
+ /* equiv idx, value */ 55, VALUE_OPT_INLINE_COMMANDS_PREFIX,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ INLINE_COMMANDS_PREFIX_FLAGS, 0,
@@ -1716,8 +1744,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ INLINE_COMMANDS_PREFIX_DESC, INLINE_COMMANDS_PREFIX_NAME, INLINE_COMMANDS_PREFIX_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 55, VALUE_OPT_PROVIDER,
- /* equiv idx, value */ 55, VALUE_OPT_PROVIDER,
+ { /* entry idx, value */ 56, VALUE_OPT_PROVIDER,
+ /* equiv idx, value */ 56, VALUE_OPT_PROVIDER,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PROVIDER_FLAGS, 0,
@@ -1728,8 +1756,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ PROVIDER_DESC, PROVIDER_NAME, PROVIDER_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 56, VALUE_OPT_FIPS140_MODE,
- /* equiv idx, value */ 56, VALUE_OPT_FIPS140_MODE,
+ { /* entry idx, value */ 57, VALUE_OPT_FIPS140_MODE,
+ /* equiv idx, value */ 57, VALUE_OPT_FIPS140_MODE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ FIPS140_MODE_FLAGS, 0,
@@ -1782,21 +1810,21 @@ static tOptDesc optDesc[OPTION_CT] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of gnutls-cli. */
-#define zPROGNAME (gnutls_cli_opt_strs+4697)
+#define zPROGNAME (gnutls_cli_opt_strs+4771)
/** Reference to the title line for gnutls-cli usage. */
-#define zUsageTitle (gnutls_cli_opt_strs+4708)
+#define zUsageTitle (gnutls_cli_opt_strs+4782)
/** There is no gnutls-cli configuration file. */
#define zRcName NULL
/** There are no directories to search for gnutls-cli config files. */
#define apzHomeList NULL
/** The gnutls-cli program bug email address. */
-#define zBugsAddr (gnutls_cli_opt_strs+4804)
+#define zBugsAddr (gnutls_cli_opt_strs+4878)
/** Clarification/explanation of what gnutls-cli does. */
-#define zExplain (gnutls_cli_opt_strs+4820)
+#define zExplain (gnutls_cli_opt_strs+4894)
/** Extra detail explaining what gnutls-cli does. */
-#define zDetail (gnutls_cli_opt_strs+4822)
+#define zDetail (gnutls_cli_opt_strs+4896)
/** The full version string for gnutls-cli. */
-#define zFullVersion (gnutls_cli_opt_strs+5005)
+#define zFullVersion (gnutls_cli_opt_strs+5079)
/* extracted from optcode.tlib near line 364 */
#if defined(ENABLE_NLS)
@@ -1808,7 +1836,7 @@ static tOptDesc optDesc[OPTION_CT] = {
#endif /* ENABLE_NLS */
#define gnutls_cli_full_usage (NULL)
-#define gnutls_cli_short_usage (gnutls_cli_opt_strs+5022)
+#define gnutls_cli_short_usage (gnutls_cli_opt_strs+5096)
#endif /* not defined __doxygen__ */
@@ -2067,7 +2095,7 @@ tOptions gnutls_cliOptions = {
NO_EQUIVALENT, /* '-#' option index */
NO_EQUIVALENT /* index of default opt */
},
- 60 /* full option count */, 57 /* user option count */,
+ 61 /* full option count */, 58 /* user option count */,
gnutls_cli_full_usage, gnutls_cli_short_usage,
NULL, NULL,
PKGDATADIR, gnutls_cli_packager_info
@@ -2249,6 +2277,9 @@ changed"));
puts(_("Establish a session and resume"));
/* referenced via gnutls_cliOptions.pOptDesc->pzText */
+ puts(_("Send early data on resumption from the specified file"));
+
+ /* referenced via gnutls_cliOptions.pOptDesc->pzText */
puts(_("Establish a session and rehandshake"));
/* referenced via gnutls_cliOptions.pOptDesc->pzText */
@@ -2441,7 +2472,7 @@ gnutls-cli --help for usage instructions.\n"));
puts(_("\tThis is less than the minimum library version: "));
#line 121 "../version.c"
puts(_("Automated Options version %s\n"
- "\tCopyright (C) 1999-2014 by Bruce Korb - all rights reserved\n"));
+ "\tCopyright (C) 1999-2017 by Bruce Korb - all rights reserved\n"));
#line 87 "../makeshell.c"
puts(_("(AutoOpts bug): %s.\n"));
#line 90 "../reset.c"
diff --git a/src/cli-args.def b/src/cli-args.def
index ee3eb86c79..1e06e12d3a 100644
--- a/src/cli-args.def
+++ b/src/cli-args.def
@@ -75,6 +75,13 @@ flag = {
};
flag = {
+ name = earlydata;
+ arg-type = string;
+ descrip = "Send early data on resumption from the specified file";
+ doc = "";
+};
+
+flag = {
name = rehandshake;
value = e;
descrip = "Establish a session and rehandshake";
diff --git a/src/cli-args.h.bak b/src/cli-args.h.bak
index 6a83f05651..a1788f6d86 100644
--- a/src/cli-args.h.bak
+++ b/src/cli-args.h.bak
@@ -75,60 +75,61 @@ typedef enum {
INDEX_OPT_CA_VERIFICATION = 6,
INDEX_OPT_OCSP = 7,
INDEX_OPT_RESUME = 8,
- INDEX_OPT_REHANDSHAKE = 9,
- INDEX_OPT_SNI_HOSTNAME = 10,
- INDEX_OPT_VERIFY_HOSTNAME = 11,
- INDEX_OPT_STARTTLS = 12,
- INDEX_OPT_APP_PROTO = 13,
- INDEX_OPT_STARTTLS_PROTO = 14,
- INDEX_OPT_UDP = 15,
- INDEX_OPT_MTU = 16,
- INDEX_OPT_CRLF = 17,
- INDEX_OPT_FASTOPEN = 18,
- INDEX_OPT_X509FMTDER = 19,
- INDEX_OPT_PRINT_CERT = 20,
- INDEX_OPT_SAVE_CERT = 21,
- INDEX_OPT_SAVE_OCSP = 22,
- INDEX_OPT_SAVE_SERVER_TRACE = 23,
- INDEX_OPT_SAVE_CLIENT_TRACE = 24,
- INDEX_OPT_DH_BITS = 25,
- INDEX_OPT_PRIORITY = 26,
- INDEX_OPT_X509CAFILE = 27,
- INDEX_OPT_X509CRLFILE = 28,
- INDEX_OPT_X509KEYFILE = 29,
- INDEX_OPT_X509CERTFILE = 30,
- INDEX_OPT_SRPUSERNAME = 31,
- INDEX_OPT_SRPPASSWD = 32,
- INDEX_OPT_PSKUSERNAME = 33,
- INDEX_OPT_PSKKEY = 34,
- INDEX_OPT_PORT = 35,
- INDEX_OPT_INSECURE = 36,
- INDEX_OPT_VERIFY_ALLOW_BROKEN = 37,
- INDEX_OPT_RANGES = 38,
- INDEX_OPT_BENCHMARK_CIPHERS = 39,
- INDEX_OPT_BENCHMARK_TLS_KX = 40,
- INDEX_OPT_BENCHMARK_TLS_CIPHERS = 41,
- INDEX_OPT_LIST = 42,
- INDEX_OPT_PRIORITY_LIST = 43,
- INDEX_OPT_NOTICKET = 44,
- INDEX_OPT_SRTP_PROFILES = 45,
- INDEX_OPT_ALPN = 46,
- INDEX_OPT_HEARTBEAT = 47,
- INDEX_OPT_RECORDSIZE = 48,
- INDEX_OPT_DISABLE_SNI = 49,
- INDEX_OPT_DISABLE_EXTENSIONS = 50,
- INDEX_OPT_SINGLE_KEY_SHARE = 51,
- INDEX_OPT_POST_HANDSHAKE_AUTH = 52,
- INDEX_OPT_INLINE_COMMANDS = 53,
- INDEX_OPT_INLINE_COMMANDS_PREFIX = 54,
- INDEX_OPT_PROVIDER = 55,
- INDEX_OPT_FIPS140_MODE = 56,
- INDEX_OPT_VERSION = 57,
- INDEX_OPT_HELP = 58,
- INDEX_OPT_MORE_HELP = 59
+ INDEX_OPT_EARLYDATA = 9,
+ INDEX_OPT_REHANDSHAKE = 10,
+ INDEX_OPT_SNI_HOSTNAME = 11,
+ INDEX_OPT_VERIFY_HOSTNAME = 12,
+ INDEX_OPT_STARTTLS = 13,
+ INDEX_OPT_APP_PROTO = 14,
+ INDEX_OPT_STARTTLS_PROTO = 15,
+ INDEX_OPT_UDP = 16,
+ INDEX_OPT_MTU = 17,
+ INDEX_OPT_CRLF = 18,
+ INDEX_OPT_FASTOPEN = 19,
+ INDEX_OPT_X509FMTDER = 20,
+ INDEX_OPT_PRINT_CERT = 21,
+ INDEX_OPT_SAVE_CERT = 22,
+ INDEX_OPT_SAVE_OCSP = 23,
+ INDEX_OPT_SAVE_SERVER_TRACE = 24,
+ INDEX_OPT_SAVE_CLIENT_TRACE = 25,
+ INDEX_OPT_DH_BITS = 26,
+ INDEX_OPT_PRIORITY = 27,
+ INDEX_OPT_X509CAFILE = 28,
+ INDEX_OPT_X509CRLFILE = 29,
+ INDEX_OPT_X509KEYFILE = 30,
+ INDEX_OPT_X509CERTFILE = 31,
+ INDEX_OPT_SRPUSERNAME = 32,
+ INDEX_OPT_SRPPASSWD = 33,
+ INDEX_OPT_PSKUSERNAME = 34,
+ INDEX_OPT_PSKKEY = 35,
+ INDEX_OPT_PORT = 36,
+ INDEX_OPT_INSECURE = 37,
+ INDEX_OPT_VERIFY_ALLOW_BROKEN = 38,
+ INDEX_OPT_RANGES = 39,
+ INDEX_OPT_BENCHMARK_CIPHERS = 40,
+ INDEX_OPT_BENCHMARK_TLS_KX = 41,
+ INDEX_OPT_BENCHMARK_TLS_CIPHERS = 42,
+ INDEX_OPT_LIST = 43,
+ INDEX_OPT_PRIORITY_LIST = 44,
+ INDEX_OPT_NOTICKET = 45,
+ INDEX_OPT_SRTP_PROFILES = 46,
+ INDEX_OPT_ALPN = 47,
+ INDEX_OPT_HEARTBEAT = 48,
+ INDEX_OPT_RECORDSIZE = 49,
+ INDEX_OPT_DISABLE_SNI = 50,
+ INDEX_OPT_DISABLE_EXTENSIONS = 51,
+ INDEX_OPT_SINGLE_KEY_SHARE = 52,
+ INDEX_OPT_POST_HANDSHAKE_AUTH = 53,
+ INDEX_OPT_INLINE_COMMANDS = 54,
+ INDEX_OPT_INLINE_COMMANDS_PREFIX = 55,
+ INDEX_OPT_PROVIDER = 56,
+ INDEX_OPT_FIPS140_MODE = 57,
+ INDEX_OPT_VERSION = 58,
+ INDEX_OPT_HELP = 59,
+ INDEX_OPT_MORE_HELP = 60
} teOptIndex;
/** count of all options for gnutls-cli */
-#define OPTION_CT 60
+#define OPTION_CT 61
/** gnutls-cli version */
#define GNUTLS_CLI_VERSION "3.6.4"
/** Full gnutls-cli version text */
@@ -194,60 +195,61 @@ typedef enum {
#define VALUE_OPT_CA_VERIFICATION 0x1005
#define VALUE_OPT_OCSP 0x1006
#define VALUE_OPT_RESUME 'r'
+#define VALUE_OPT_EARLYDATA 0x1007
#define VALUE_OPT_REHANDSHAKE 'e'
-#define VALUE_OPT_SNI_HOSTNAME 0x1007
-#define VALUE_OPT_VERIFY_HOSTNAME 0x1008
+#define VALUE_OPT_SNI_HOSTNAME 0x1008
+#define VALUE_OPT_VERIFY_HOSTNAME 0x1009
#define VALUE_OPT_STARTTLS 's'
-#define VALUE_OPT_APP_PROTO 0x1009
-#define VALUE_OPT_STARTTLS_PROTO 0x100A
+#define VALUE_OPT_APP_PROTO 0x100A
+#define VALUE_OPT_STARTTLS_PROTO 0x100B
#define VALUE_OPT_UDP 'u'
-#define VALUE_OPT_MTU 0x100B
+#define VALUE_OPT_MTU 0x100C
#define OPT_VALUE_MTU (DESC(MTU).optArg.argInt)
-#define VALUE_OPT_CRLF 0x100C
-#define VALUE_OPT_FASTOPEN 0x100D
-#define VALUE_OPT_X509FMTDER 0x100E
-#define VALUE_OPT_PRINT_CERT 0x100F
-#define VALUE_OPT_SAVE_CERT 0x1010
-#define VALUE_OPT_SAVE_OCSP 0x1011
-#define VALUE_OPT_SAVE_SERVER_TRACE 0x1012
-#define VALUE_OPT_SAVE_CLIENT_TRACE 0x1013
-#define VALUE_OPT_DH_BITS 0x1014
+#define VALUE_OPT_CRLF 0x100D
+#define VALUE_OPT_FASTOPEN 0x100E
+#define VALUE_OPT_X509FMTDER 0x100F
+#define VALUE_OPT_PRINT_CERT 0x1010
+#define VALUE_OPT_SAVE_CERT 0x1011
+#define VALUE_OPT_SAVE_OCSP 0x1012
+#define VALUE_OPT_SAVE_SERVER_TRACE 0x1013
+#define VALUE_OPT_SAVE_CLIENT_TRACE 0x1014
+#define VALUE_OPT_DH_BITS 0x1015
#define OPT_VALUE_DH_BITS (DESC(DH_BITS).optArg.argInt)
-#define VALUE_OPT_PRIORITY 0x1015
-#define VALUE_OPT_X509CAFILE 0x1016
-#define VALUE_OPT_X509CRLFILE 0x1017
-#define VALUE_OPT_X509KEYFILE 0x1018
-#define VALUE_OPT_X509CERTFILE 0x1019
-#define VALUE_OPT_SRPUSERNAME 0x101A
-#define VALUE_OPT_SRPPASSWD 0x101B
-#define VALUE_OPT_PSKUSERNAME 0x101C
-#define VALUE_OPT_PSKKEY 0x101D
+#define VALUE_OPT_PRIORITY 0x1016
+#define VALUE_OPT_X509CAFILE 0x1017
+#define VALUE_OPT_X509CRLFILE 0x1018
+#define VALUE_OPT_X509KEYFILE 0x1019
+#define VALUE_OPT_X509CERTFILE 0x101A
+#define VALUE_OPT_SRPUSERNAME 0x101B
+#define VALUE_OPT_SRPPASSWD 0x101C
+#define VALUE_OPT_PSKUSERNAME 0x101D
+#define VALUE_OPT_PSKKEY 0x101E
#define VALUE_OPT_PORT 'p'
-#define VALUE_OPT_INSECURE 0x101E
-#define VALUE_OPT_VERIFY_ALLOW_BROKEN 0x101F
-#define VALUE_OPT_RANGES 0x1020
-#define VALUE_OPT_BENCHMARK_CIPHERS 0x1021
-#define VALUE_OPT_BENCHMARK_TLS_KX 0x1022
-#define VALUE_OPT_BENCHMARK_TLS_CIPHERS 0x1023
+#define VALUE_OPT_INSECURE 0x101F
+#define VALUE_OPT_VERIFY_ALLOW_BROKEN 0x1020
+#define VALUE_OPT_RANGES 0x1021
+#define VALUE_OPT_BENCHMARK_CIPHERS 0x1022
+#define VALUE_OPT_BENCHMARK_TLS_KX 0x1023
+#define VALUE_OPT_BENCHMARK_TLS_CIPHERS 0x1024
#define VALUE_OPT_LIST 'l'
-#define VALUE_OPT_PRIORITY_LIST 0x1024
-#define VALUE_OPT_NOTICKET 0x1025
-#define VALUE_OPT_SRTP_PROFILES 0x1026
-#define VALUE_OPT_ALPN 0x1027
+#define VALUE_OPT_PRIORITY_LIST 0x1025
+#define VALUE_OPT_NOTICKET 0x1026
+#define VALUE_OPT_SRTP_PROFILES 0x1027
+#define VALUE_OPT_ALPN 0x1028
#define VALUE_OPT_HEARTBEAT 'b'
-#define VALUE_OPT_RECORDSIZE 0x1028
+#define VALUE_OPT_RECORDSIZE 0x1029
#define OPT_VALUE_RECORDSIZE (DESC(RECORDSIZE).optArg.argInt)
-#define VALUE_OPT_DISABLE_SNI 0x1029
-#define VALUE_OPT_DISABLE_EXTENSIONS 0x102A
-#define VALUE_OPT_SINGLE_KEY_SHARE 0x102B
-#define VALUE_OPT_POST_HANDSHAKE_AUTH 0x102C
-#define VALUE_OPT_INLINE_COMMANDS 0x102D
-#define VALUE_OPT_INLINE_COMMANDS_PREFIX 0x102E
-#define VALUE_OPT_PROVIDER 0x102F
-#define VALUE_OPT_FIPS140_MODE 0x1030
+#define VALUE_OPT_DISABLE_SNI 0x102A
+#define VALUE_OPT_DISABLE_EXTENSIONS 0x102B
+#define VALUE_OPT_SINGLE_KEY_SHARE 0x102C
+#define VALUE_OPT_POST_HANDSHAKE_AUTH 0x102D
+#define VALUE_OPT_INLINE_COMMANDS 0x102E
+#define VALUE_OPT_INLINE_COMMANDS_PREFIX 0x102F
+#define VALUE_OPT_PROVIDER 0x1030
+#define VALUE_OPT_FIPS140_MODE 0x1031
/** option flag (value) for help-value option */
#define VALUE_OPT_HELP 'h'
/** option flag (value) for more-help-value option */
diff --git a/src/cli.c b/src/cli.c
index 5f82e1486f..fa198e42b7 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -838,6 +838,7 @@ static int try_resume(socket_st * hd)
{
int ret, socket_flags = SOCKET_FLAG_DONT_PRINT_ERRORS;
gnutls_datum_t rdata = {NULL, 0};
+ gnutls_datum_t edata = {NULL, 0};
if (gnutls_session_is_resumed(hd->session) == 0) {
/* not resumed - obtain the session data */
@@ -867,8 +868,22 @@ static int try_resume(socket_st * hd)
if (udp)
socket_flags |= SOCKET_FLAG_UDP;
- socket_open(hd, hostname, service, OPT_ARG(STARTTLS_PROTO),
- socket_flags, CONNECT_MSG, &rdata);
+ if (HAVE_OPT(EARLYDATA)) {
+ FILE *fp;
+ size_t size;
+
+ fp = fopen(OPT_ARG(EARLYDATA), "r");
+ if (fp == NULL) {
+ fprintf(stderr, "could not open %s\n", OPT_ARG(EARLYDATA));
+ exit(1);
+ }
+ edata.data = (void *) fread_file(fp, &size);
+ edata.size = size;
+ fclose(fp);
+ }
+
+ socket_open3(hd, hostname, service, OPT_ARG(STARTTLS_PROTO),
+ socket_flags, CONNECT_MSG, &rdata, &edata);
printf("- Resume Handshake was completed\n");
if (gnutls_session_is_resumed(hd->session) != 0)
@@ -1154,7 +1169,7 @@ int main(int argc, char **argv)
}
socket_open2(&hd, hostname, service, OPT_ARG(STARTTLS_PROTO),
- socket_flags, CONNECT_MSG, NULL,
+ socket_flags, CONNECT_MSG, NULL, NULL,
server_fp, client_fp);
hd.verbose = verbose;
diff --git a/src/socket.c b/src/socket.c
index f488c531e5..be60f9458c 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -456,7 +456,7 @@ inline static int wrap_pull_timeout_func(gnutls_transport_ptr_t ptr,
void
socket_open2(socket_st * hd, const char *hostname, const char *service,
- const char *app_proto, int flags, const char *msg, gnutls_datum_t *rdata,
+ const char *app_proto, int flags, const char *msg, gnutls_datum_t *rdata, gnutls_datum_t *edata,
FILE *server_trace, FILE *client_trace)
{
struct addrinfo hints, *res, *ptr;
@@ -479,6 +479,11 @@ socket_open2(socket_st * hd, const char *hostname, const char *service,
hd->rdata.size = rdata->size;
}
+ if (edata) {
+ hd->edata.data = edata->data;
+ hd->edata.size = edata->size;
+ }
+
ret = gnutls_idna_map(hostname, strlen(hostname), &idna, 0);
if (ret < 0) {
fprintf(stderr, "Cannot convert %s to IDNA: %s\n", hostname, gnutls_strerror(ret));
@@ -564,6 +569,13 @@ socket_open2(socket_st * hd, const char *hostname, const char *service,
}
if (hd->session) {
+ if (hd->edata.data) {
+ ret = gnutls_record_send_early_data(hd->session, hd->edata.data, hd->edata.size);
+ if (ret < 0) {
+ fprintf(stderr, "error sending early data\n");
+ exit(1);
+ }
+ }
if (hd->rdata.data) {
gnutls_session_set_data(hd->session, hd->rdata.data, hd->rdata.size);
}
@@ -621,6 +633,8 @@ socket_open2(socket_st * hd, const char *hostname, const char *service,
hd->addr_info = res;
gnutls_free(hd->rdata.data);
hd->rdata.data = NULL;
+ gnutls_free(hd->edata.data);
+ hd->edata.data = NULL;
gnutls_free(idna.data);
return;
}
diff --git a/src/socket.h b/src/socket.h
index b66e5c512d..ce64f0bb66 100644
--- a/src/socket.h
+++ b/src/socket.h
@@ -31,6 +31,8 @@ typedef struct {
/* resumption data */
gnutls_datum_t rdata;
+ /* early data */
+ gnutls_datum_t edata;
} socket_st;
/* calling program must provide that */
@@ -47,11 +49,14 @@ ssize_t socket_send_range(const socket_st * socket, const void *buffer,
int buffer_size, gnutls_range_st * range);
void
socket_open2(socket_st * hd, const char *hostname, const char *service,
- const char *app_proto, int flags, const char *msg, gnutls_datum_t *rdata,
+ const char *app_proto, int flags, const char *msg, gnutls_datum_t *rdata, gnutls_datum_t *edata,
FILE *server_trace, FILE *client_trace);
#define socket_open(hd, host, service, app_proto, flags, msg, rdata) \
- socket_open2(hd, host, service, app_proto, flags, msg, rdata, NULL, NULL)
+ socket_open2(hd, host, service, app_proto, flags, msg, rdata, NULL, NULL, NULL)
+
+#define socket_open3(hd, host, service, app_proto, flags, msg, rdata, edata) \
+ socket_open2(hd, host, service, app_proto, flags, msg, rdata, edata, NULL, NULL)
void socket_bye(socket_st * socket, unsigned polite);