From 927a335fbd3d51e29a216efd034b61f0a169f6aa Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Sat, 19 Jun 2021 19:11:43 +0100 Subject: Testsuite: split out OpenSSL TLS1.3 resume tests Older library versions do not support 1.3 so a separate numbered testcase is needed --- test/confs/5892 | 4 ++ test/confs/5893 | 4 ++ test/confs/5894 | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ test/confs/5895 | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 237 insertions(+) create mode 100644 test/confs/5894 create mode 100644 test/confs/5895 (limited to 'test/confs') diff --git a/test/confs/5892 b/test/confs/5892 index 4e6883fc2..a7738468f 100644 --- a/test/confs/5892 +++ b/test/confs/5892 @@ -15,7 +15,11 @@ acl_smtp_helo = check_helo acl_smtp_rcpt = check_recipient log_selector = +received_recipients +tls_resumption +tls_peerdn +.ifdef _OPT_OPENSSL_NO_TLSV1_3_X openssl_options = +no_sslv2 +no_sslv3 +single_dh_use OPTION +.else +openssl_options = +no_sslv2 +no_sslv3 +single_dh_use +.endif tls_advertise_hosts = * # Set certificate only if server diff --git a/test/confs/5893 b/test/confs/5893 index 74b61b70b..a7f73a98c 100644 --- a/test/confs/5893 +++ b/test/confs/5893 @@ -15,7 +15,11 @@ acl_smtp_helo = check_helo acl_smtp_rcpt = check_recipient log_selector = +received_recipients +tls_resumption +tls_peerdn +.ifdef _OPT_OPENSSL_NO_TLSV1_3_X openssl_options = +no_sslv2 +no_sslv3 +single_dh_use OPTION +.else +openssl_options = +no_sslv2 +no_sslv3 +single_dh_use +.endif tls_advertise_hosts = * # Set certificate only if server diff --git a/test/confs/5894 b/test/confs/5894 new file mode 100644 index 000000000..da347178e --- /dev/null +++ b/test/confs/5894 @@ -0,0 +1,113 @@ +# Exim test configuration 5894 + +SERVER = + +.include DIR/aux-var/tls_conf_prefix + +primary_hostname = myhost.test.ex + +# ----- Main settings ----- + +domainlist local_domains = test.ex : *.test.ex + +acl_smtp_helo = check_helo +acl_smtp_rcpt = check_recipient +log_selector = +received_recipients +tls_resumption +tls_peerdn + +openssl_options = +no_sslv2 +no_sslv3 +single_dh_use +tls_advertise_hosts = * + +# Set certificate only if server + +CDIR=DIR/aux-fixed/exim-ca/example.com + +tls_certificate = CDIR/server1.example.com/server1.example.com.chain.pem +tls_privatekey = CDIR/server1.example.com/server1.example.com.unlocked.key + +tls_resumption_hosts = 127.0.0.1 + + +# ------ ACL ------ + +begin acl + +check_helo: + accept condition = ${if def:tls_in_cipher} + logwrite = tls_in_resumption\t${listextract {$tls_in_resumption} {_RESUME_DECODE}} + logwrite = our cert subject\t${certextract {subject}{$tls_in_ourcert}} + logwrite = peer cert subject\t${certextract {subject}{$tls_in_peercert}} + logwrite = peer cert verified\t${tls_in_certificate_verified} + logwrite = peer dn\t${tls_in_peerdn} + logwrite = cipher\t${tls_in_cipher} + logwrite = bits\t${tls_in_bits} + accept + +check_recipient: + accept domains = +local_domains + deny message = relay not permitted + +log_resumption: + accept condition = ${if def:tls_out_cipher} + condition = ${if eq {$event_name}{tcp:close}} + logwrite = tls_out_resumption ${listextract {$tls_out_resumption} {_RESUME_DECODE}} + logwrite = our cert subject\t${certextract {subject}{$tls_out_ourcert}} + logwrite = peer cert subject\t${certextract {subject}{$tls_out_peercert}} + logwrite = peer cert verified\t${tls_out_certificate_verified} + logwrite = peer dn\t${tls_out_peerdn} + logwrite = cipher\t${tls_out_cipher} + logwrite = bits\t${tls_out_bits} + + +# ----- Routers ----- + +begin routers + +client: + driver = accept + condition = ${if eq {SERVER}{server}{no}{yes}} + transport = send_to_server${if eq{$local_part}{abcd}{2}{1}} + +server: + driver = redirect + data = :blackhole: + +# ----- Transports ----- + +begin transports + +send_to_server1: + driver = smtp + allow_localhost + hosts = 127.0.0.1 + port = PORT_D + helo_data = helo.data.changed +.ifdef VALUE + tls_resumption_hosts = * +.else + tls_resumption_hosts = : +.endif + tls_verify_certificates = CDIR/CA/CA.pem + tls_verify_cert_hostnames = ${if match {$local_part}{^noverify} {*}{:}} + tls_try_verify_hosts = * + event_action = ${acl {log_resumption}} + +send_to_server2: + driver = smtp + allow_localhost + hosts = HOSTIPV4 + port = PORT_D + hosts_try_fastopen = : + tls_verify_certificates = CDIR/CA/CA.pem + tls_verify_cert_hostnames = : + event_action = ${acl {log_resumption}} + + +# ----- Retry ----- + + +begin retry + +* * F,5d,10s + + +# End diff --git a/test/confs/5895 b/test/confs/5895 new file mode 100644 index 000000000..d279b1e3e --- /dev/null +++ b/test/confs/5895 @@ -0,0 +1,116 @@ +# Exim test configuration 5895 + +SERVER = + +.include DIR/aux-var/tls_conf_prefix + +primary_hostname = myhost.test.ex + +# ----- Main settings ----- + +domainlist local_domains = test.ex : *.test.ex + +acl_smtp_helo = check_helo +acl_smtp_rcpt = check_recipient +log_selector = +received_recipients +tls_resumption +tls_peerdn + +openssl_options = +no_sslv2 +no_sslv3 +single_dh_use +tls_advertise_hosts = * + +# Set certificate only if server + +CDIR=DIR/aux-fixed/exim-ca/example.com + +tls_certificate = CDIR/server1.example.com/server1.example.com.chain.pem +tls_privatekey = CDIR/server1.example.com/server1.example.com.unlocked.key +tls_ocsp_file = CDIR/server1.example.com/server1.example.com.ocsp.good.resp + +tls_resumption_hosts = 127.0.0.1 + + +# ------ ACL ------ + +begin acl + +check_helo: + accept condition = ${if def:tls_in_cipher} + logwrite = tls_in_resumption\t${listextract {$tls_in_resumption} {_RESUME_DECODE}} + logwrite = our cert subject\t${certextract {subject}{$tls_in_ourcert}} + logwrite = peer cert subject\t${certextract {subject}{$tls_in_peercert}} + logwrite = peer cert verified\t${tls_in_certificate_verified} + logwrite = peer dn\t${tls_in_peerdn} + logwrite = ocsp\t${tls_in_ocsp} + logwrite = cipher\t${tls_in_cipher} + logwrite = bits\t${tls_in_bits} + accept + +check_recipient: + accept domains = +local_domains + deny message = relay not permitted + +log_resumption: + accept condition = ${if def:tls_out_cipher} + condition = ${if eq {$event_name}{tcp:close}} + logwrite = tls_out_resumption ${listextract {$tls_out_resumption} {_RESUME_DECODE}} + logwrite = our cert subject\t${certextract {subject}{$tls_out_ourcert}} + logwrite = peer cert subject\t${certextract {subject}{$tls_out_peercert}} + logwrite = peer cert verified\t${tls_out_certificate_verified} + logwrite = peer dn\t${tls_out_peerdn} + logwrite = ocsp\t${tls_out_ocsp} + logwrite = cipher\t${tls_out_cipher} + logwrite = bits\t${tls_out_bits} + + +# ----- Routers ----- + +begin routers + +client: + driver = accept + condition = ${if eq {SERVER}{server}{no}{yes}} + transport = send_to_server${if eq{$local_part}{abcd}{2}{1}} + +server: + driver = redirect + data = :blackhole: + +# ----- Transports ----- + +begin transports + +send_to_server1: + driver = smtp + allow_localhost + hosts = 127.0.0.1 + port = PORT_D + helo_data = helo.data.changed +.ifdef VALUE + tls_resumption_hosts = * +.else + tls_resumption_hosts = : +.endif + tls_verify_certificates = CDIR/CA/CA.pem + tls_verify_cert_hostnames = ${if match {$local_part}{^noverify} {*}{:}} + tls_try_verify_hosts = * + event_action = ${acl {log_resumption}} + +send_to_server2: + driver = smtp + allow_localhost + hosts = HOSTIPV4 + port = PORT_D + hosts_try_fastopen = : + tls_verify_certificates = CDIR/CA/CA.pem + tls_verify_cert_hostnames = : + event_action = ${acl {log_resumption}} + + +# ----- Retry ----- + + +begin retry + +* * F,5d,10s + + +# End -- cgit v1.2.3