openssl/ssl
Emilia Kasper 453dfd8d5e New SSL test framework
Currently, SSL tests are configured via command-line switches to
ssltest.c. This results in a lot of duplication between ssltest.c and
apps, and a complex setup. ssltest.c is also simply old and needs
maintenance.

Instead, we already have a way to configure SSL servers and clients, so
we leverage that. SSL tests can now be configured from a configuration
file. Test servers and clients are configured using the standard
ssl_conf module. Additional test settings are configured via a test
configuration.

Moreover, since the CONF language involves unnecessary boilerplate, the
test conf itself is generated from a shorter Perl syntax.

The generated testcase files are checked in to the repo to make
it easier to verify that the intended test cases are in fact run; and to
simplify debugging failures.

To demonstrate the approach, min/max protocol tests are converted to the
new format. This change also fixes MinProtocol and MaxProtocol
handling. It was previously requested that an SSL_CTX have both the
server and client flags set for these commands; this clearly can never work.

Guide to this PR:
 - test/ssl_test.c - test framework
 - test/ssl_test_ctx.* - test configuration structure
 - test/handshake_helper.* - new SSL test handshaking code
 - test/ssl-tests/ - test configurations
 - test/generate_ssl_tests.pl - script for generating CONF-style test
   configurations from perl inputs

Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-04-05 13:44:46 +02:00
..
record Revert "various spelling fixes" 2016-04-04 16:11:43 -04:00
statem Revert "various spelling fixes" 2016-04-04 16:11:43 -04:00
bio_ssl.c Make BIO opaque 2016-03-29 17:40:54 +01:00
build.info
d1_lib.c Revert "various spelling fixes" 2016-04-04 16:11:43 -04:00
d1_msg.c
d1_srtp.c
Makefile.in Remove the remainder of util/mk1mf.pl and companion scripts 2016-03-21 11:02:00 +01:00
methods.c Allow different protocol version when trying to reuse a session 2016-03-27 23:58:50 +02:00
packet_locl.h Refactor ClientHello extension parsing 2016-03-03 13:53:26 +01:00
pqueue.c
s3_cbc.c
s3_enc.c Revert "various spelling fixes" 2016-04-04 16:11:43 -04:00
s3_lib.c Revert "various spelling fixes" 2016-04-04 16:11:43 -04:00
s3_msg.c Implement write pipeline support in libssl 2016-03-07 21:39:27 +00:00
ssl_asn1.c
ssl_cert.c Revert "various spelling fixes" 2016-04-04 16:11:43 -04:00
ssl_ciph.c Check algo_strength using SSL_STRONG_MASK 2016-03-22 22:00:12 +01:00
ssl_conf.c New SSL test framework 2016-04-05 13:44:46 +02:00
ssl_err.c Revert "various spelling fixes" 2016-04-04 16:11:43 -04:00
ssl_init.c Swap the init code to use CRYPTO_ONCE 2016-03-07 17:17:21 +00:00
ssl_lib.c Revert "various spelling fixes" 2016-04-04 16:11:43 -04:00
ssl_locl.h Allow different protocol version when trying to reuse a session 2016-03-27 23:58:50 +02:00
ssl_mcnf.c
ssl_rsa.c fix no-ec build 2016-03-03 13:27:34 +00:00
ssl_sess.c Allow different protocol version when trying to reuse a session 2016-03-27 23:58:50 +02:00
ssl_stat.c Use return "" not set a var and return. 2016-03-31 16:27:52 -04:00
ssl_txt.c Revert "various spelling fixes" 2016-04-04 16:11:43 -04:00
ssl_utst.c
t1_enc.c Remove #error from include files. 2016-03-20 19:48:36 -04:00
t1_ext.c Remove #error from include files. 2016-03-20 19:48:36 -04:00
t1_lib.c Revert "various spelling fixes" 2016-04-04 16:11:43 -04:00
t1_reneg.c Remove outdated DEBUG flags. 2016-02-18 17:14:50 -05:00
t1_trce.c Adds CT validation to SSL connections 2016-03-04 10:50:10 -05:00
tls_srp.c