Testsuite: harden for TLS1.3 under GnuTLS
[users/heiko/exim.git] / test / scripts / 2000-GnuTLS / 2014
index 21b703c384445e76ce72338e36b0a1c6d76bc30c..5bd5858db856c825941b9bd9f639d245ece9f35f 100644 (file)
@@ -1,11 +1,13 @@
 # TLS server: mandatory, optional, and revoked certificates
 gnutls
+munge gnutls_unexpected
 exim -DSERVER=server -bd -oX PORT_D
 ****
-# No certificate, certificate required
+### No certificate, certificate required
 client-gnutls HOSTIPV4 PORT_D
 ??? 220
-ehlo rhu.barb
+ehlo rhu1.barb
+??? 250-
 ??? 250-
 ??? 250-
 ??? 250-
@@ -13,11 +15,14 @@ ehlo rhu.barb
 ??? 250
 starttls
 ??? 220
+nop
+????554
 ****
-# No certificate, certificate optional at TLS time, required by ACL
+### No certificate, certificate optional at TLS time, required by ACL
 client-gnutls 127.0.0.1 PORT_D
 ??? 220
-ehlo rhu.barb
+ehlo rhu2.barb
+??? 250-
 ??? 250-
 ??? 250-
 ??? 250-
@@ -25,7 +30,7 @@ ehlo rhu.barb
 ??? 250
 starttls
 ??? 220
-helo rhu.barb
+helo rhu2tls.barb
 ??? 250
 mail from:<userx@test.ex>
 ??? 250
@@ -34,10 +39,11 @@ rcpt to:<userx@test.ex>
 quit
 ??? 221
 ****
-# Good certificate, certificate required
-client-gnutls HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2
+### Good certificate, certificate required
+client-gnutls HOSTIPV4 PORT_D aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.chain.pem aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.unlocked.key
 ??? 220
-ehlo rhu.barb
+ehlo rhu3.barb
+??? 250-
 ??? 250-
 ??? 250-
 ??? 250-
@@ -52,10 +58,11 @@ rcpt to:<userx@test.ex>
 quit
 ??? 221
 ****
-# Good certificate, certificate optional at TLS time, checked by ACL
-client-gnutls 127.0.0.1 PORT_D aux-fixed/cert2 aux-fixed/cert2
+### Good certificate, certificate optional at TLS time, checked by ACL
+client-gnutls 127.0.0.1 PORT_D aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.chain.pem aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.unlocked.key
 ??? 220
-ehlo rhu.barb
+ehlo rhu4.barb
+??? 250-
 ??? 250-
 ??? 250-
 ??? 250-
@@ -70,10 +77,13 @@ rcpt to:<userx@test.ex>
 quit
 ??? 221
 ****
-# Bad certificate, certificate required
-client-gnutls HOSTIPV4 PORT_D aux-fixed/cert1 aux-fixed/cert1
+### Bad certificate, certificate required
+# Actually this test does not have the client presenting a cert at all, as it filters what it has
+# by the options offered by the server first.  So it's not a good testcase.
+client-gnutls HOSTIPV4 PORT_D aux-fixed/exim-ca/example.net/server1.example.net/server1.example.net.chain.pem aux-fixed/exim-ca/example.net/server1.example.net/server1.example.net.unlocked.key
 ??? 220
-ehlo rhu.barb
+ehlo rhu5.barb
+??? 250-
 ??? 250-
 ??? 250-
 ??? 250-
@@ -81,11 +91,15 @@ ehlo rhu.barb
 ??? 250
 starttls
 ??? 220
+nop
+????554
 ****
-# Bad certificate, certificate optional at TLS time, reject at ACL time
-client-gnutls 127.0.0.1 PORT_D aux-fixed/cert1 aux-fixed/cert1
+### Bad certificate, certificate optional at TLS time, reject at ACL time
+# (situation as above)
+client-gnutls 127.0.0.1 PORT_D aux-fixed/exim-ca/example.net/server1.example.net/server1.example.net.chain.pem aux-fixed/exim-ca/example.net/server1.example.net/server1.example.net.unlocked.key
 ??? 220
-ehlo rhu.barb
+ehlo rhu6.barb
+??? 250-
 ??? 250-
 ??? 250-
 ??? 250-
@@ -96,18 +110,23 @@ starttls
 mail from:<userx@test.ex>
 ??? 250
 rcpt to:<userx@test.ex>
-??? 550-
 ??? 550
 quit
 ??? 221
 ****
 killdaemon
-exim -DCRL=DIR/aux-fixed/crl.pem -DSERVER=server -bd -oX PORT_D
+#
+#
+#
+#
+exim -DCRL=DIR/aux-fixed/exim-ca/example.com/CA/crl.v2.pem -DSERVER=server -bd -oX PORT_D
 ****
-# Good but revoked certificate, certificate required
-client-gnutls HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2
+### Otherwise good but revoked certificate, certificate required
+# GnuTLS seems to not mind the lack of CRLs for the nonleaf certs in the chain, unlike under OpenSSL
+client-gnutls HOSTIPV4 PORT_D aux-fixed/exim-ca/example.com/revoked1.example.com/revoked1.example.com.chain.pem aux-fixed/exim-ca/example.com/revoked1.example.com/revoked1.example.com.unlocked.key
 ??? 220
-ehlo rhu.barb
+ehlo rhu7.barb
+??? 250-
 ??? 250-
 ??? 250-
 ??? 250-
@@ -115,11 +134,14 @@ ehlo rhu.barb
 ??? 250
 starttls
 ??? 220
+mail from:<userx@test.ex>
+??? 554
 ****
-# Revoked certificate, certificate optional at TLS time, reject at ACL time
-client-gnutls 127.0.0.1 PORT_D aux-fixed/cert1 aux-fixed/cert1
+### Revoked certificate, certificate optional at TLS time, reject at ACL time
+client-gnutls 127.0.0.1 PORT_D aux-fixed/exim-ca/example.com/revoked1.example.com/revoked1.example.com.chain.pem aux-fixed/exim-ca/example.com/revoked1.example.com/revoked1.example.com.unlocked.key
 ??? 220
-ehlo rhu.barb
+ehlo rhu8.barb
+??? 250-
 ??? 250-
 ??? 250-
 ??? 250-
@@ -130,9 +152,27 @@ starttls
 mail from:<userx@test.ex>
 ??? 250
 rcpt to:<userx@test.ex>
-??? 550-
 ??? 550
 quit
 ??? 221
 ****
+### Good certificate, certificate required - but nonmatching CRL also present
+client-gnutls HOSTIPV4 PORT_D aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.chain.pem aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.unlocked.key
+??? 220
+ehlo rhu9.barb
+??? 250-
+??? 250-
+??? 250-
+??? 250-
+??? 250-
+??? 250
+starttls
+??? 220
+mail from:<userx@test.ex>
+??? 250
+rcpt to:<userx@test.ex>
+??? 250
+quit
+??? 221
+****
 killdaemon