X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=test%2Fsslcorrupttest.c;h=d06c8c729b1d83ac84c5b3c556b6030afff3cc4f;hp=a92e0d79d371d171b5c626744e588297bb1b793b;hb=fb853fa245a98b3451818e43a6664219725fd43a;hpb=019e47ce564e9d57ed85c4ebe0672518b6a349f5 diff --git a/test/sslcorrupttest.c b/test/sslcorrupttest.c index a92e0d79d3..d06c8c729b 100644 --- a/test/sslcorrupttest.c +++ b/test/sslcorrupttest.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -137,7 +137,7 @@ static void bio_f_tls_corrupt_filter_free(void) */ static const char **cipher_list = NULL; -static int setup_cipher_list() +static int setup_cipher_list(void) { SSL_CTX *ctx = NULL; SSL *ssl = NULL; @@ -193,28 +193,24 @@ static int test_ssl_corrupt(int testidx) TEST_info("Starting #%d, %s", testidx, cipher_list[testidx]); - if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), - TLS_client_method(), &sctx, - &cctx, cert, privkey))) + if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(), + TLS1_VERSION, TLS_MAX_VERSION, + &sctx, &cctx, cert, privkey))) return 0; - if (!TEST_true(SSL_CTX_set_cipher_list(cctx, cipher_list[testidx]))) - goto end; - - if (!TEST_ptr(ciphers = SSL_CTX_get_ciphers(cctx)) + if (!TEST_true(SSL_CTX_set_cipher_list(cctx, cipher_list[testidx])) + || !TEST_true(SSL_CTX_set_ciphersuites(cctx, "")) + || !TEST_ptr(ciphers = SSL_CTX_get_ciphers(cctx)) || !TEST_int_eq(sk_SSL_CIPHER_num(ciphers), 1) || !TEST_ptr(currcipher = sk_SSL_CIPHER_value(ciphers, 0))) goto end; /* - * If we haven't got a TLSv1.3 cipher, then we mustn't attempt to use - * TLSv1.3. Version negotiation happens before cipher selection, so we will - * get a "no shared cipher" error. + * No ciphers we are using are TLSv1.3 compatible so we should not attempt + * to negotiate TLSv1.3 */ - if (strcmp(SSL_CIPHER_get_version(currcipher), "TLSv1.3") != 0) { - if (!TEST_true(SSL_CTX_set_max_proto_version(cctx, TLS1_2_VERSION))) - goto end; - } + if (!TEST_true(SSL_CTX_set_max_proto_version(cctx, TLS1_2_VERSION))) + goto end; if (!TEST_ptr(c_to_s_fbio = BIO_new(bio_f_tls_corrupt_filter()))) goto end; @@ -248,24 +244,24 @@ static int test_ssl_corrupt(int testidx) return testresult; } -int test_main(int argc, char *argv[]) +int setup_tests(void) { - int ret = EXIT_FAILURE, n; + int n; - if (argc != 3) { - TEST_error("Usage error: require cert and private key files"); - return ret; + if (!TEST_ptr(cert = test_get_argument(0)) + || !TEST_ptr(privkey = test_get_argument(1))) { + TEST_note("Usage error: require cert and private key files"); + return 0; } - cert = argv[1]; - privkey = argv[2]; n = setup_cipher_list(); - if (n > 0) { + if (n > 0) ADD_ALL_TESTS(test_ssl_corrupt, n); - ret = run_tests(argv[0]); - } + return 1; +} + +void cleanup_tests(void) +{ bio_f_tls_corrupt_filter_free(); OPENSSL_free(cipher_list); - - return ret; }