aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2015-11-13 14:57:55 +0000
committerDr. Stephen Henson <steve@openssl.org>2015-11-14 00:06:33 +0000
commit96509199154827213a2c4c134948dd8eceea15de (patch)
treef4d7d3ac33b014835c27a3ac089246a6bdd04e97 /apps
parent2a802c8029eaed7a2615159a8613b7f1de6cb10a (diff)
downloadopenssl-96509199154827213a2c4c134948dd8eceea15de.tar.gz
add -psk option to ciphers command
Reviewed-by: Matt Caswell <matt@openssl.org>
Diffstat (limited to 'apps')
-rw-r--r--apps/ciphers.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/apps/ciphers.c b/apps/ciphers.c
index 5aad1ccb63..12dca50a12 100644
--- a/apps/ciphers.c
+++ b/apps/ciphers.c
@@ -69,6 +69,7 @@ typedef enum OPTION_choice {
OPT_TLS1,
OPT_TLS1_1,
OPT_TLS1_2,
+ OPT_PSK,
OPT_V, OPT_UPPER_V, OPT_S
} OPTION_CHOICE;
@@ -86,9 +87,20 @@ OPTIONS ciphers_options[] = {
#ifndef OPENSSL_NO_SSL3
{"ssl3", OPT_SSL3, '-', "SSL3 mode"},
#endif
+#ifndef OPENSSL_NO_PSK
+ {"psk", OPT_PSK, '-', "include ciphersuites requiring PSK"},
+#endif
{NULL}
};
+static unsigned int dummy_psk(SSL *ssl, const char *hint, char *identity,
+ unsigned int max_identity_len,
+ unsigned char *psk,
+ unsigned int max_psk_len)
+{
+ return 0;
+}
+
int ciphers_main(int argc, char **argv)
{
SSL_CTX *ctx = NULL;
@@ -99,6 +111,9 @@ int ciphers_main(int argc, char **argv)
#ifndef OPENSSL_NO_SSL_TRACE
int stdname = 0;
#endif
+#ifndef OPENSSL_NO_PSK
+ int psk = 0;
+#endif
const char *p;
char *ciphers = NULL, *prog;
char buf[512];
@@ -144,6 +159,11 @@ int ciphers_main(int argc, char **argv)
case OPT_TLS1_2:
meth = TLSv1_2_client_method();
break;
+ case OPT_PSK:
+#ifndef OPENSSL_NO_PSK
+ psk = 1;
+#endif
+ break;
}
}
argv = opt_rest();
@@ -157,6 +177,10 @@ int ciphers_main(int argc, char **argv)
ctx = SSL_CTX_new(meth);
if (ctx == NULL)
goto err;
+#ifndef OPENSSL_NO_PSK
+ if (psk)
+ SSL_CTX_set_psk_client_callback(ctx, dummy_psk);
+#endif
if (ciphers != NULL) {
if (!SSL_CTX_set_cipher_list(ctx, ciphers)) {
BIO_printf(bio_err, "Error in cipher list\n");