summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2014-07-11 10:45:17 +0000
committerjsing <>2014-07-11 10:45:17 +0000
commit8b5f82e7321e0a687676af525e7afe4e5b56af9c (patch)
treed92585a0d7ce27e68929a796cc8bbca0f17b4f3d
parent66d0ff62fdd99d195677430d488c48cc20306840 (diff)
downloadopenbsd-8b5f82e7321e0a687676af525e7afe4e5b56af9c.tar.gz
openbsd-8b5f82e7321e0a687676af525e7afe4e5b56af9c.tar.bz2
openbsd-8b5f82e7321e0a687676af525e7afe4e5b56af9c.zip
Remove PSK from the ssl regress.
-rw-r--r--src/regress/lib/libssl/ssl/ssltest.c119
-rw-r--r--src/regress/lib/libssl/ssl/testssl16
2 files changed, 1 insertions, 134 deletions
diff --git a/src/regress/lib/libssl/ssl/ssltest.c b/src/regress/lib/libssl/ssl/ssltest.c
index adb9e0647b..90d9e7f6ae 100644
--- a/src/regress/lib/libssl/ssl/ssltest.c
+++ b/src/regress/lib/libssl/ssl/ssltest.c
@@ -209,29 +209,12 @@ static DH *get_dh1024(void);
209static DH *get_dh1024dsa(void); 209static DH *get_dh1024dsa(void);
210#endif 210#endif
211 211
212
213static char *psk_key = NULL; /* by default PSK is not used */
214#ifndef OPENSSL_NO_PSK
215static unsigned int psk_client_callback(SSL *ssl, const char *hint,
216 char *identity, unsigned int max_identity_len, unsigned char *psk,
217 unsigned int max_psk_len);
218static unsigned int psk_server_callback(SSL *ssl, const char *identity,
219 unsigned char *psk, unsigned int max_psk_len);
220#endif
221
222
223static BIO *bio_err = NULL; 212static BIO *bio_err = NULL;
224static BIO *bio_stdout = NULL; 213static BIO *bio_stdout = NULL;
225 214
226static char *cipher = NULL; 215static char *cipher = NULL;
227static int verbose = 0; 216static int verbose = 0;
228static int debug = 0; 217static int debug = 0;
229#if 0
230/* Not used yet. */
231#ifdef FIONBIO
232static int s_nbio = 0;
233#endif
234#endif
235 218
236int doit_biopair(SSL *s_ssl, SSL *c_ssl, long bytes, clock_t *s_time, clock_t *c_time); 219int doit_biopair(SSL *s_ssl, SSL *c_ssl, long bytes, clock_t *s_time, clock_t *c_time);
237int doit(SSL *s_ssl, SSL *c_ssl, long bytes); 220int doit(SSL *s_ssl, SSL *c_ssl, long bytes);
@@ -260,9 +243,6 @@ sv_usage(void)
260#ifndef OPENSSL_NO_ECDH 243#ifndef OPENSSL_NO_ECDH
261 fprintf(stderr, " -no_ecdhe - disable ECDHE\n"); 244 fprintf(stderr, " -no_ecdhe - disable ECDHE\n");
262#endif 245#endif
263#ifndef OPENSSL_NO_PSK
264 fprintf(stderr, " -psk arg - PSK in hex (without 0x)\n");
265#endif
266 fprintf(stderr, " -dtls1 - use DTLSv1\n"); 246 fprintf(stderr, " -dtls1 - use DTLSv1\n");
267 fprintf(stderr, " -ssl3 - use SSLv3\n"); 247 fprintf(stderr, " -ssl3 - use SSLv3\n");
268 fprintf(stderr, " -tls1 - use TLSv1\n"); 248 fprintf(stderr, " -tls1 - use TLSv1\n");
@@ -408,7 +388,6 @@ main(int argc, char *argv[])
408#endif 388#endif
409 int no_dhe = 0; 389 int no_dhe = 0;
410 int no_ecdhe = 0; 390 int no_ecdhe = 0;
411 int no_psk = 0;
412 int print_time = 0; 391 int print_time = 0;
413 clock_t s_time = 0, c_time = 0; 392 clock_t s_time = 0, c_time = 0;
414 int test_cipherlist = 0; 393 int test_cipherlist = 0;
@@ -465,19 +444,7 @@ main(int argc, char *argv[])
465 no_dhe = 1; 444 no_dhe = 1;
466 else if (strcmp(*argv, "-no_ecdhe") == 0) 445 else if (strcmp(*argv, "-no_ecdhe") == 0)
467 no_ecdhe = 1; 446 no_ecdhe = 1;
468 else if (strcmp(*argv, "-psk") == 0) { 447 else if (strcmp(*argv, "-dtls1") == 0)
469 if (--argc < 1)
470 goto bad;
471 psk_key=*(++argv);
472#ifndef OPENSSL_NO_PSK
473 if (strspn(psk_key, "abcdefABCDEF1234567890") != strlen(psk_key)) {
474 BIO_printf(bio_err, "Not a hex number '%s'\n", *argv);
475 goto bad;
476 }
477#else
478 no_psk = 1;
479#endif
480 } else if (strcmp(*argv, "-dtls1") == 0)
481 dtls1 = 1; 448 dtls1 = 1;
482 else if (strcmp(*argv, "-ssl2") == 0) 449 else if (strcmp(*argv, "-ssl2") == 0)
483 ssl2 = 1; 450 ssl2 = 1;
@@ -721,32 +688,9 @@ bad:
721 SSL_CTX_set_session_id_context(s_ctx, (void *)&session_id_context, sizeof session_id_context); 688 SSL_CTX_set_session_id_context(s_ctx, (void *)&session_id_context, sizeof session_id_context);
722 } 689 }
723 690
724 /* Use PSK only if PSK key is given */
725 if (psk_key != NULL) {
726 /* no_psk is used to avoid putting psk command to openssl tool */
727 if (no_psk) {
728 /* if PSK is not compiled in and psk key is
729 * given, do nothing and exit successfully */
730 ret = 0;
731 goto end;
732 }
733#ifndef OPENSSL_NO_PSK
734 SSL_CTX_set_psk_client_callback(c_ctx, psk_client_callback);
735 SSL_CTX_set_psk_server_callback(s_ctx, psk_server_callback);
736 if (debug)
737 BIO_printf(bio_err, "setting PSK identity hint to s_ctx\n");
738 if (!SSL_CTX_use_psk_identity_hint(s_ctx, "ctx server identity_hint")) {
739 BIO_printf(bio_err, "error setting PSK identity hint to s_ctx\n");
740 ERR_print_errors(bio_err);
741 goto end;
742 }
743#endif
744 }
745
746 c_ssl = SSL_new(c_ctx); 691 c_ssl = SSL_new(c_ctx);
747 s_ssl = SSL_new(s_ctx); 692 s_ssl = SSL_new(s_ctx);
748 693
749
750 for (i = 0; i < number; i++) { 694 for (i = 0; i < number; i++) {
751 if (!reuse) 695 if (!reuse)
752 SSL_set_session(c_ssl, NULL); 696 SSL_set_session(c_ssl, NULL);
@@ -2027,67 +1971,6 @@ get_dh1024dsa()
2027} 1971}
2028#endif 1972#endif
2029 1973
2030#ifndef OPENSSL_NO_PSK
2031/* convert the PSK key (psk_key) in ascii to binary (psk) */
2032static int
2033psk_key2bn(const char *pskkey, unsigned char *psk, unsigned int max_psk_len)
2034{
2035 int ret;
2036 BIGNUM *bn = NULL;
2037
2038 ret = BN_hex2bn(&bn, pskkey);
2039 if (!ret) {
2040 BIO_printf(bio_err, "Could not convert PSK key '%s' to BIGNUM\n", pskkey);
2041 if (bn)
2042 BN_free(bn);
2043 return 0;
2044 }
2045 if (BN_num_bytes(bn) > (int)max_psk_len) {
2046 BIO_printf(bio_err, "psk buffer of callback is too small (%d) for key (%d)\n",
2047 max_psk_len, BN_num_bytes(bn));
2048 BN_free(bn);
2049 return 0;
2050 }
2051 ret = BN_bn2bin(bn, psk);
2052 BN_free(bn);
2053 return ret;
2054}
2055
2056static unsigned int
2057psk_client_callback(SSL *ssl, const char *hint, char *identity,
2058 unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len)
2059{
2060 int ret;
2061 unsigned int psk_len = 0;
2062
2063 ret = snprintf(identity, max_identity_len, "Client_identity");
2064 if (ret == -1 || (unsigned int)ret >= max_identity_len)
2065 goto out_err;
2066 if (debug)
2067 fprintf(stderr, "client: created identity '%s' len=%d\n", identity, ret);
2068 ret = psk_key2bn(psk_key, psk, max_psk_len);
2069 if (ret < 0)
2070 goto out_err;
2071 psk_len = ret;
2072out_err:
2073 return psk_len;
2074}
2075
2076static unsigned int
2077psk_server_callback(SSL *ssl, const char *identity, unsigned char *psk,
2078 unsigned int max_psk_len)
2079{
2080 unsigned int psk_len = 0;
2081
2082 if (strcmp(identity, "Client_identity") != 0) {
2083 BIO_printf(bio_err, "server: PSK error: client identity not found\n");
2084 return 0;
2085 }
2086 psk_len = psk_key2bn(psk_key, psk, max_psk_len);
2087 return psk_len;
2088}
2089#endif
2090
2091static int 1974static int
2092do_test_cipherlist(void) 1975do_test_cipherlist(void)
2093{ 1976{
diff --git a/src/regress/lib/libssl/ssl/testssl b/src/regress/lib/libssl/ssl/testssl
index 80f3a1c511..a4fa4112df 100644
--- a/src/regress/lib/libssl/ssl/testssl
+++ b/src/regress/lib/libssl/ssl/testssl
@@ -142,22 +142,6 @@ fi
142# fi 142# fi
143#fi 143#fi
144 144
145echo test tls1 with PSK
146$ssltest -tls1 -cipher PSK -psk abc123 $extra || exit 1
147
148echo test tls1 with PSK via BIO pair
149$ssltest -bio_pair -tls1 -cipher PSK -psk abc123 $extra || exit 1
150
151if openssl no-srp; then
152 echo skipping SRP tests
153else
154 echo test tls1 with SRP
155 $ssltest -tls1 -cipher SRP -srpuser test -srppass abc123
156
157 echo test tls1 with SRP via BIO pair
158 $ssltest -bio_pair -tls1 -cipher SRP -srpuser test -srppass abc123
159fi
160
161# 145#
162# DTLS 146# DTLS
163# 147#