Attempt (2) egrep compat for Solaris vs. Linux
[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 ??? 250
26 starttls
27 ??? 220
28 ehlo rhu.barb
29 ??? 250-
30 ??? 250-
31 ??? 250-
32 ??? 250-
33 ??? 250-
34 ??? 250
35 mail from:<CALLER@test.ex>
36 ??? 250
37 rcpt to:<CALLER@test.ex>
38 ??? 250
39 DATA
40 ??? 3
41 This is a test encrypted message.
42 .
43 ??? 250
44 quit
45 ??? 221
46 ****
47 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
48 ??? 220
49 ehlo rhu.barb
50 ??? 250-
51 ??? 250-
52 ??? 250-
53 ??? 250-
54 ??? 250-
55 ??? 250-
56 ??? 250
57 starttls
58 ??? 220
59 helo test
60 ??? 250
61 mail from:<"name with spaces"@test.ex>
62 ??? 250
63 rcpt to:<CALLER@test.ex>
64 ??? 250
65 DATA
66 ??? 3
67 This is a test encrypted message.
68 .
69 ??? 250
70 quit
71 ??? 221
72 ****
73 #
74 # Server asks for a client cert but client does not supply one
75 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
76 ??? 220
77 ehlo rhu.barb
78 ??? 250-
79 ??? 250-SIZE
80 ??? 250-LIMITS
81 ??? 250-8BITMIME
82 ??? 250-PIPELINING
83 ??? 250-STARTTLS
84 ??? 250 HELP
85 starttls
86 ??? 220 TLS go ahead
87 nop
88 ???*
89 ****
90 # ensure sequence of log TLS error line
91 killdaemon
92 sleep 1
93 exim -DSERVER=server -bd -oX PORT_D
94 ****
95 #
96 #
97 # Server asks for a client cert, and one is given which is verifiable by the server
98 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
99 ??? 220
100 ehlo rhu.barb
101 ??? 250-
102 ??? 250-
103 ??? 250-
104 ??? 250-
105 ??? 250-
106 ??? 250-
107 ??? 250
108 starttls
109 ??? 220
110 helo test
111 ??? 250
112 mail from:<CALLER@test.ex>
113 ??? 250
114 rcpt to:<CALLER@test.ex>
115 ??? 250
116 DATA
117 ??? 3
118 This is a test encrypted message from a verified host.
119 .
120 ??? 250
121 quit
122 ??? 221
123 ****
124 #
125 #
126 # A client that only talks RSA.
127 #
128 # We have to specify the key-exchange as well as the authentication, otherwise,
129 # the GnuTLS server side being foolish - it picks an ECDSA cipher-suite and then can't use it :(
130 # Possibly fixed in 3.6.x ? 
131 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
132 ??? 220
133 ehlo rhu.barb
134 ??? 250-
135 ??? 250-
136 ??? 250-
137 ??? 250-
138 ??? 250-
139 ??? 250-
140 ??? 250
141 starttls
142 ??? 220
143 helo test
144 ??? 250
145 mail from:<CALLER@test.ex>
146 ??? 250
147 rcpt to:<CALLER@test.ex>
148 ??? 250
149 DATA
150 ??? 3
151 This is a test encrypted message.
152 It should be sent under the RSA server cert and with an RSA cipher.
153 .
154 ??? 250
155 quit
156 ??? 221
157 ****
158 #
159 #
160 # Make ECDSA authentication preferred (Older GnuTLS prefers RSA, it seems, Newer, ECDSA).
161 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
162 ??? 220
163 ehlo rhu.barb
164 ??? 250-
165 ??? 250-
166 ??? 250-
167 ??? 250-
168 ??? 250-
169 ??? 250-
170 ??? 250
171 starttls
172 ??? 220
173 helo test
174 ??? 250
175 mail from:<CALLER@test.ex>
176 ??? 250
177 rcpt to:<CALLER@test.ex>
178 ??? 250
179 DATA
180 ??? 3
181 This is a test encrypted message.
182 It should be sent under the EC server cert and with an ECDSA cipher.
183 .
184 ??? 250
185 quit
186 ??? 221
187 ****
188 killdaemon
189 sleep 1
190 # clear out the queue
191 exim -qf
192 ****
193 sleep 1
194 #
195 # STARTTLS used when not advertised
196 exim -bh 10.0.0.1
197 starttls
198 quit
199 ****