Revert "Build: remove hints-DB interface from macro-predef phase"
[exim.git] / test / scripts / 2000-GnuTLS / 2002
1 # TLS server: general ops and certificate extractions
2 gnutls
3 #
4 # Very early (unsure when) GnuTLS prefers RSA auth by default.  Later, but before 3.6.x, prefers
5 # ECDSA but the client can be given a priority order to override that.  We're running the server
6 # with no priority string given (tls_require_ciphers) hence default, and with both types of
7 # server cert loaded (RSA first, though we don't document that as relevant and in testing it
8 # does not appear to matter).
9 #
10 # GnuTLS 3.6.5 appears to ignore the client priority ordering, always choosing ECDSA if both
11 # are permitted, if TLS1.3 is permitted, so we limit to TLS1.2.
12 #
13 exim -DSERVER=server -bd -oX PORT_D
14 ****
15 # Have the client do RSA (but support ECDSA as well).  That should get us RSA on both older and newer GnuTLS.
16 client-gnutls -p NONE:+SIGN-RSA-SHA256:+SIGN-ECDSA-SHA512:+VERS-TLS1.2:+ECDHE-RSA:+DHE-RSA:+RSA:+CIPHER-ALL:+MAC-ALL:+COMP-NULL:+CURVE-ALL:+CTYPE-X509 127.0.0.1 PORT_D
17 ??? 220
18 ehlo rhu.barb
19 ??? 250-
20 ??? 250-
21 ??? 250-
22 ??? 250-
23 ??? 250-
24 ??? 250
25 starttls
26 ??? 220
27 ehlo rhu.barb
28 ??? 250-
29 ??? 250-
30 ??? 250-
31 ??? 250-
32 ??? 250
33 mail from:<CALLER@test.ex>
34 ??? 250
35 rcpt to:<CALLER@test.ex>
36 ??? 250
37 DATA
38 ??? 3
39 This is a test encrypted message.
40 .
41 ??? 250
42 quit
43 ??? 221
44 ****
45 client-gnutls -p NONE:+SIGN-RSA-SHA256:+SIGN-ECDSA-SHA512:+VERS-TLS1.2:+ECDHE-RSA:+DHE-RSA:+RSA:+CIPHER-ALL:+MAC-ALL:+COMP-NULL:+CURVE-ALL:+CTYPE-X509 127.0.0.1 PORT_D
46 ??? 220
47 ehlo rhu.barb
48 ??? 250-
49 ??? 250-
50 ??? 250-
51 ??? 250-
52 ??? 250-
53 ??? 250
54 starttls
55 ??? 220
56 helo test
57 ??? 250
58 mail from:<"name with spaces"@test.ex>
59 ??? 250
60 rcpt to:<CALLER@test.ex>
61 ??? 250
62 DATA
63 ??? 3
64 This is a test encrypted message.
65 .
66 ??? 250
67 quit
68 ??? 221
69 ****
70 #
71 # Server asks for a client cert but client does not supply one
72 client-gnutls -p NONE:+SIGN-RSA-SHA256:+SIGN-ECDSA-SHA512:+VERS-TLS1.2:+ECDHE-RSA:+DHE-RSA:+RSA:+CIPHER-ALL:+MAC-ALL:+COMP-NULL:+CURVE-ALL:+CTYPE-X509 HOSTIPV4 PORT_D
73 ??? 220
74 ehlo rhu.barb
75 ??? 250-
76 ??? 250-SIZE
77 ??? 250-8BITMIME
78 ??? 250-PIPELINING
79 ??? 250-STARTTLS
80 ??? 250 HELP
81 starttls
82 ??? 220 TLS go ahead
83 nop
84 ???*
85 ****
86 # ensure sequence of log TLS error line
87 killdaemon
88 sleep 1
89 exim -DSERVER=server -bd -oX PORT_D
90 ****
91 #
92 #
93 # Server asks for a client cert, and one is given which is verifiable by the server
94 client-gnutls -p NONE:+SIGN-RSA-SHA256:+SIGN-ECDSA-SHA512:+VERS-TLS1.2:+ECDHE-RSA:+DHE-RSA:+RSA:+CIPHER-ALL:+MAC-ALL:+COMP-NULL:+CURVE-ALL:+CTYPE-X509 HOSTIPV4 PORT_D DIR/aux-fixed/exim-ca/example.com/server2.example.com/server2.example.com.pem DIR/aux-fixed/exim-ca/example.com/server2.example.com/server2.example.com.unlocked.key
95 ??? 220
96 ehlo rhu.barb
97 ??? 250-
98 ??? 250-
99 ??? 250-
100 ??? 250-
101 ??? 250-
102 ??? 250
103 starttls
104 ??? 220
105 helo test
106 ??? 250
107 mail from:<CALLER@test.ex>
108 ??? 250
109 rcpt to:<CALLER@test.ex>
110 ??? 250
111 DATA
112 ??? 3
113 This is a test encrypted message from a verified host.
114 .
115 ??? 250
116 quit
117 ??? 221
118 ****
119 #
120 #
121 # A client that only talks RSA.
122 #
123 # We have to specify the key-exchange as well as the authentication, otherwise,
124 # the GnuTLS server side being foolish - it picks an ECDSA cipher-suite and then can't use it :(
125 # Possibly fixed in 3.6.x ? 
126 client-gnutls -p NONE:+SIGN-RSA-SHA256:+VERS-TLS1.2:+ECDHE-RSA:+DHE-RSA:+RSA:+CIPHER-ALL:+MAC-ALL:+COMP-NULL:+CURVE-ALL:+CTYPE-X509 127.0.0.1 PORT_D
127 ??? 220
128 ehlo rhu.barb
129 ??? 250-
130 ??? 250-
131 ??? 250-
132 ??? 250-
133 ??? 250-
134 ??? 250
135 starttls
136 ??? 220
137 helo test
138 ??? 250
139 mail from:<CALLER@test.ex>
140 ??? 250
141 rcpt to:<CALLER@test.ex>
142 ??? 250
143 DATA
144 ??? 3
145 This is a test encrypted message.
146 It should be sent under the RSA server cert and with an RSA cipher.
147 .
148 ??? 250
149 quit
150 ??? 221
151 ****
152 #
153 #
154 # Make ECDSA authentication preferred (Older GnuTLS prefers RSA, it seems, Newer, ECDSA).
155 client-gnutls -p NONE:+SIGN-ECDSA-SHA512:+VERS-TLS1.2:+KX-ALL:+CIPHER-ALL:+MAC-ALL:+COMP-NULL:+CURVE-ALL:+CTYPE-X509 127.0.0.1 PORT_D
156 ??? 220
157 ehlo rhu.barb
158 ??? 250-
159 ??? 250-
160 ??? 250-
161 ??? 250-
162 ??? 250-
163 ??? 250
164 starttls
165 ??? 220
166 helo test
167 ??? 250
168 mail from:<CALLER@test.ex>
169 ??? 250
170 rcpt to:<CALLER@test.ex>
171 ??? 250
172 DATA
173 ??? 3
174 This is a test encrypted message.
175 It should be sent under the EC server cert and with an ECDSA cipher.
176 .
177 ??? 250
178 quit
179 ??? 221
180 ****
181 killdaemon
182 sleep 1
183 # clear out the queue
184 exim -qf
185 ****
186 sleep 1
187 #
188 # STARTTLS used when not advertised
189 exim -bh 10.0.0.1
190 starttls
191 quit
192 ****