blob: 7b63cd4795bc1e8ae46d50251062c2c4e3a10636 [file] [log] [blame]
Gilles Peskineab84fe82024-09-13 13:53:50 +02001# Miscellaneous tests of TLS 1.3 features.
Jerry Yue5991322022-11-07 14:03:44 +08002
Jerry Yue5991322022-11-07 14:03:44 +08003# Copyright The Mbed TLS Contributors
Dave Rodgman16799db2023-11-02 19:47:20 +00004# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
Jerry Yue5991322022-11-07 14:03:44 +08005#
6
7requires_gnutls_tls1_3
Jerry Yu616ba752022-11-08 21:49:47 +08008requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
9requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
10requires_config_enabled MBEDTLS_SSL_SRV_C
11requires_config_enabled MBEDTLS_DEBUG_C
12requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
13
14run_test "TLS 1.3: PSK: No valid ciphersuite. G->m" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010015 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yu616ba752022-11-08 21:49:47 +080016 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-CIPHER-ALL:+AES-256-GCM:+AEAD:+SHA384:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
17 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
18 localhost" \
19 1 \
20 -s "found psk key exchange modes extension" \
21 -s "found pre_shared_key extension" \
22 -s "Found PSK_EPHEMERAL KEX MODE" \
23 -s "Found PSK KEX MODE" \
24 -s "No matched ciphersuite"
25
26requires_openssl_tls1_3
27requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
28requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
29requires_config_enabled MBEDTLS_SSL_SRV_C
30requires_config_enabled MBEDTLS_DEBUG_C
31requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
32
33run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010034 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yu616ba752022-11-08 21:49:47 +080035 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -ciphersuites TLS_AES_256_GCM_SHA384\
36 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
37 1 \
38 -s "found psk key exchange modes extension" \
39 -s "found pre_shared_key extension" \
40 -s "Found PSK_EPHEMERAL KEX MODE" \
41 -s "Found PSK KEX MODE" \
42 -s "No matched ciphersuite"
43
Gilles Peskine365296a2024-09-13 14:15:46 +020044requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
45requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
46requires_config_enabled MBEDTLS_SSL_SRV_C
47requires_config_enabled MBEDTLS_SSL_CLI_C
48requires_config_enabled MBEDTLS_DEBUG_C
49requires_config_enabled MBEDTLS_HAVE_TIME
50requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu616ba752022-11-08 21:49:47 +080051run_test "TLS 1.3 m->m: Multiple PSKs: valid ticket, reconnect with ticket" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010052 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +020053 "$P_CLI tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +080054 0 \
55 -c "Pre-configured PSK number = 2" \
56 -s "sent selected_identity: 0" \
57 -s "key exchange mode: psk_ephemeral" \
58 -S "key exchange mode: psk$" \
59 -S "key exchange mode: ephemeral$" \
60 -S "ticket is not authentic"
61
Gilles Peskine365296a2024-09-13 14:15:46 +020062requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
63requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
64requires_config_enabled MBEDTLS_SSL_SRV_C
65requires_config_enabled MBEDTLS_SSL_CLI_C
66requires_config_enabled MBEDTLS_DEBUG_C
67requires_config_enabled MBEDTLS_HAVE_TIME
68requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu616ba752022-11-08 21:49:47 +080069run_test "TLS 1.3 m->m: Multiple PSKs: invalid ticket, reconnect with PSK" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010070 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=1" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +020071 "$P_CLI tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +080072 0 \
73 -c "Pre-configured PSK number = 2" \
74 -s "sent selected_identity: 1" \
75 -s "key exchange mode: psk_ephemeral" \
76 -S "key exchange mode: psk$" \
77 -S "key exchange mode: ephemeral$" \
78 -s "ticket is not authentic"
79
Ronald Cron3cf41452024-03-10 10:44:14 +010080requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020081requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
82requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
83requires_config_enabled MBEDTLS_SSL_SRV_C
84requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron3cf41452024-03-10 10:44:14 +010085requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
86run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \
87 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
88 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
89 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
90 localhost" \
91 1 \
92 -s "found psk key exchange modes extension" \
93 -s "found pre_shared_key extension" \
94 -s "Found PSK_EPHEMERAL KEX MODE" \
95 -S "Found PSK KEX MODE" \
96 -S "key exchange mode: psk$" \
97 -S "key exchange mode: psk_ephemeral" \
98 -S "key exchange mode: ephemeral"
99
100requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200101requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
102requires_config_enabled MBEDTLS_SSL_SRV_C
103requires_config_enabled MBEDTLS_DEBUG_C
104requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
105requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
106requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
107requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron3cf41452024-03-10 10:44:14 +0100108run_test "TLS 1.3: G->m: PSK: configured psk only, good." \
109 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
110 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \
111 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
112 localhost" \
113 0 \
114 -s "found psk key exchange modes extension" \
115 -s "found pre_shared_key extension" \
116 -s "Found PSK_EPHEMERAL KEX MODE" \
117 -s "Found PSK KEX MODE" \
118 -s "key exchange mode: psk$"
119
120requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200121requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
122requires_config_enabled MBEDTLS_SSL_SRV_C
123requires_config_enabled MBEDTLS_DEBUG_C
124requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
125requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
126requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
127requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron3cf41452024-03-10 10:44:14 +0100128run_test "TLS 1.3: G->m: PSK: configured psk_ephemeral only, good." \
129 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
130 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \
131 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
132 localhost" \
133 0 \
134 -s "found psk key exchange modes extension" \
135 -s "found pre_shared_key extension" \
136 -s "Found PSK_EPHEMERAL KEX MODE" \
137 -s "Found PSK KEX MODE" \
138 -s "key exchange mode: psk_ephemeral$"
139
140requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200141requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
142requires_config_enabled MBEDTLS_SSL_SRV_C
143requires_config_enabled MBEDTLS_DEBUG_C
144requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
145requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
146requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
147requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Cron3cf41452024-03-10 10:44:14 +0100148run_test "TLS 1.3: G->m: PSK: configured ephemeral only, good." \
149 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
150 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \
151 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
152 localhost" \
153 0 \
154 -s "key exchange mode: ephemeral$"
155
Gilles Peskine365296a2024-09-13 14:15:46 +0200156requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
157requires_config_enabled MBEDTLS_SSL_CLI_C
158requires_config_enabled MBEDTLS_SSL_SRV_C
159requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
160requires_config_enabled MBEDTLS_HAVE_TIME
161requires_config_enabled MBEDTLS_DEBUG_C
162requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron3cf41452024-03-10 10:44:14 +0100163requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
164 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100165run_test "TLS 1.3 m->m: resumption" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100166 "$P_SRV debug_level=2 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200167 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800168 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100169 -c "Protocol is TLSv1.3" \
170 -c "Saving session for reuse... ok" \
171 -c "Reconnecting with saved session... ok" \
172 -c "HTTP/1.0 200 OK" \
173 -s "Protocol is TLSv1.3" \
174 -s "key exchange mode: psk" \
175 -s "Select PSK ciphersuite"
176
Gilles Peskine365296a2024-09-13 14:15:46 +0200177requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
178requires_config_enabled MBEDTLS_SSL_CLI_C
179requires_config_enabled MBEDTLS_SSL_SRV_C
180requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
181requires_config_enabled MBEDTLS_HAVE_TIME
182requires_config_enabled MBEDTLS_DEBUG_C
183requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100184requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
185 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
186run_test "TLS 1.3 m->m: resumption with servername" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100187 "$P_SRV debug_level=2 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key \
188 sni=localhost,../framework/data_files/server2.crt,../framework/data_files/server2.key,-,-,-,polarssl.example,../framework/data_files/server1-nospace.crt,../framework/data_files/server1.key,-,-,-" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200189 "$P_CLI server_name=localhost new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100190 0 \
191 -c "Protocol is TLSv1.3" \
192 -c "Saving session for reuse... ok" \
193 -c "Reconnecting with saved session... ok" \
194 -c "HTTP/1.0 200 OK" \
195 -s "Protocol is TLSv1.3" \
196 -s "key exchange mode: psk" \
197 -s "Select PSK ciphersuite"
198
Gilles Peskine365296a2024-09-13 14:15:46 +0200199requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
200requires_config_enabled MBEDTLS_SSL_CLI_C
201requires_config_enabled MBEDTLS_SSL_SRV_C
202requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
203requires_config_enabled MBEDTLS_HAVE_TIME
204requires_config_enabled MBEDTLS_DEBUG_C
205requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100206requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
207 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
208run_test "TLS 1.3 m->m: resumption with ticket max lifetime (7d)" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100209 "$P_SRV debug_level=2 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key ticket_timeout=604800 tickets=1" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200210 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100211 0 \
212 -c "Protocol is TLSv1.3" \
213 -c "Saving session for reuse... ok" \
214 -c "Reconnecting with saved session... ok" \
215 -c "HTTP/1.0 200 OK" \
216 -s "Protocol is TLSv1.3" \
217 -s "key exchange mode: psk" \
218 -s "Select PSK ciphersuite"
219
Gilles Peskine365296a2024-09-13 14:15:46 +0200220requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
221requires_config_enabled MBEDTLS_SSL_CLI_C
222requires_config_enabled MBEDTLS_SSL_SRV_C
223requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
224requires_config_enabled MBEDTLS_HAVE_TIME
225requires_config_enabled MBEDTLS_DEBUG_C
226requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100227requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
228 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100229requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
230run_test "TLS 1.3 m->m: resumption with AES-256-GCM-SHA384 only" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100231 "$P_SRV debug_level=2 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200232 "$P_CLI force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100233 0 \
234 -c "Protocol is TLSv1.3" \
235 -c "Ciphersuite is TLS1-3-AES-256-GCM-SHA384" \
236 -c "Saving session for reuse... ok" \
237 -c "Reconnecting with saved session... ok" \
238 -c "HTTP/1.0 200 OK" \
239 -s "Protocol is TLSv1.3" \
240 -s "key exchange mode: psk" \
241 -s "Select PSK ciphersuite: 1302 - TLS1-3-AES-256-GCM-SHA384"
242
Gilles Peskine365296a2024-09-13 14:15:46 +0200243requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
244requires_config_enabled MBEDTLS_SSL_CLI_C
245requires_config_enabled MBEDTLS_SSL_SRV_C
246requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
247requires_config_enabled MBEDTLS_HAVE_TIME
248requires_config_enabled MBEDTLS_SSL_EARLY_DATA
249requires_config_enabled MBEDTLS_DEBUG_C
250requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100251requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
252 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
253run_test "TLS 1.3 m->m: resumption with early data" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100254 "$P_SRV debug_level=4 early_data=1 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200255 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100256 0 \
257 -c "Protocol is TLSv1.3" \
258 -c "Saving session for reuse... ok" \
259 -c "Reconnecting with saved session" \
260 -c "HTTP/1.0 200 OK" \
261 -c "received max_early_data_size" \
262 -c "NewSessionTicket: early_data(42) extension received." \
263 -c "ClientHello: early_data(42) extension exists." \
264 -c "EncryptedExtensions: early_data(42) extension received." \
265 -c "bytes of early data written" \
266 -C "0 bytes of early data written" \
267 -s "Protocol is TLSv1.3" \
268 -s "key exchange mode: psk" \
269 -s "Select PSK ciphersuite" \
270 -s "Sent max_early_data_size" \
271 -s "NewSessionTicket: early_data(42) extension exists." \
272 -s "ClientHello: early_data(42) extension exists." \
273 -s "EncryptedExtensions: early_data(42) extension exists." \
274 -s "early data bytes read"
275
Gilles Peskine365296a2024-09-13 14:15:46 +0200276requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
277requires_config_enabled MBEDTLS_SSL_CLI_C
278requires_config_enabled MBEDTLS_SSL_SRV_C
279requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
280requires_config_enabled MBEDTLS_HAVE_TIME
281requires_config_enabled MBEDTLS_SSL_EARLY_DATA
282requires_config_enabled MBEDTLS_DEBUG_C
283requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100284requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
285 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
286requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
287run_test "TLS 1.3 m->m: resumption with early data, AES-256-GCM-SHA384 only" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100288 "$P_SRV debug_level=4 early_data=1 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200289 "$P_CLI debug_level=3 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100290 0 \
291 -c "Protocol is TLSv1.3" \
292 -c "Ciphersuite is TLS1-3-AES-256-GCM-SHA384" \
293 -c "Saving session for reuse... ok" \
294 -c "Reconnecting with saved session" \
295 -c "HTTP/1.0 200 OK" \
296 -c "received max_early_data_size" \
297 -c "NewSessionTicket: early_data(42) extension received." \
298 -c "ClientHello: early_data(42) extension exists." \
299 -c "EncryptedExtensions: early_data(42) extension received." \
300 -c "bytes of early data written" \
301 -C "0 bytes of early data written" \
302 -s "Protocol is TLSv1.3" \
303 -s "key exchange mode: psk" \
304 -s "Select PSK ciphersuite: 1302 - TLS1-3-AES-256-GCM-SHA384" \
305 -s "Sent max_early_data_size" \
306 -s "NewSessionTicket: early_data(42) extension exists." \
307 -s "ClientHello: early_data(42) extension exists." \
308 -s "EncryptedExtensions: early_data(42) extension exists." \
309 -s "early data bytes read"
310
Gilles Peskine365296a2024-09-13 14:15:46 +0200311requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
312requires_config_enabled MBEDTLS_SSL_CLI_C
313requires_config_enabled MBEDTLS_SSL_SRV_C
314requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
315requires_config_enabled MBEDTLS_HAVE_TIME
316requires_config_enabled MBEDTLS_SSL_EARLY_DATA
317requires_config_enabled MBEDTLS_DEBUG_C
318requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100319requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
320 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
321run_test "TLS 1.3 m->m: resumption, early data cli-enabled/srv-default" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100322 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200323 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100324 0 \
325 -c "Protocol is TLSv1.3" \
326 -c "Saving session for reuse... ok" \
327 -c "Reconnecting with saved session" \
328 -c "HTTP/1.0 200 OK" \
329 -C "received max_early_data_size" \
330 -C "NewSessionTicket: early_data(42) extension received." \
331 -C "ClientHello: early_data(42) extension exists." \
332 -C "EncryptedExtensions: early_data(42) extension received." \
333 -c "0 bytes of early data written" \
334 -s "Protocol is TLSv1.3" \
335 -s "key exchange mode: psk" \
336 -s "Select PSK ciphersuite" \
337 -S "Sent max_early_data_size" \
338 -S "NewSessionTicket: early_data(42) extension exists." \
339 -S "ClientHello: early_data(42) extension exists." \
340 -S "EncryptedExtensions: early_data(42) extension exists." \
341 -S "early data bytes read"
342
Gilles Peskine365296a2024-09-13 14:15:46 +0200343requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
344requires_config_enabled MBEDTLS_SSL_CLI_C
345requires_config_enabled MBEDTLS_SSL_SRV_C
346requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
347requires_config_enabled MBEDTLS_HAVE_TIME
348requires_config_enabled MBEDTLS_SSL_EARLY_DATA
349requires_config_enabled MBEDTLS_DEBUG_C
350requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100351requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
352 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
353run_test "TLS 1.3 m->m: resumption, early data cli-enabled/srv-disabled" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100354 "$P_SRV debug_level=4 early_data=0 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200355 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100356 0 \
357 -c "Protocol is TLSv1.3" \
358 -c "Saving session for reuse... ok" \
359 -c "Reconnecting with saved session" \
360 -c "HTTP/1.0 200 OK" \
361 -C "received max_early_data_size" \
362 -C "NewSessionTicket: early_data(42) extension received." \
363 -C "ClientHello: early_data(42) extension exists." \
364 -C "EncryptedExtensions: early_data(42) extension received." \
365 -c "0 bytes of early data written" \
366 -s "Protocol is TLSv1.3" \
367 -s "key exchange mode: psk" \
368 -s "Select PSK ciphersuite" \
369 -S "Sent max_early_data_size" \
370 -S "NewSessionTicket: early_data(42) extension exists." \
371 -S "ClientHello: early_data(42) extension exists." \
372 -S "EncryptedExtensions: early_data(42) extension exists." \
373 -S "early data bytes read"
374
Gilles Peskine365296a2024-09-13 14:15:46 +0200375requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
376requires_config_enabled MBEDTLS_SSL_CLI_C
377requires_config_enabled MBEDTLS_SSL_SRV_C
378requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
379requires_config_enabled MBEDTLS_HAVE_TIME
380requires_config_enabled MBEDTLS_SSL_EARLY_DATA
381requires_config_enabled MBEDTLS_DEBUG_C
382requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100383requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
384 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
385run_test "TLS 1.3 m->m: resumption, early data cli-default/srv-enabled" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100386 "$P_SRV debug_level=4 early_data=1 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200387 "$P_CLI debug_level=3 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100388 0 \
389 -c "Protocol is TLSv1.3" \
390 -c "Saving session for reuse... ok" \
391 -c "Reconnecting with saved session" \
392 -c "HTTP/1.0 200 OK" \
393 -c "received max_early_data_size" \
394 -c "NewSessionTicket: early_data(42) extension received." \
395 -C "ClientHello: early_data(42) extension exists." \
396 -C "EncryptedExtensions: early_data(42) extension received." \
397 -C "bytes of early data written" \
398 -s "Protocol is TLSv1.3" \
399 -s "key exchange mode: psk" \
400 -s "Select PSK ciphersuite" \
401 -s "Sent max_early_data_size" \
402 -s "NewSessionTicket: early_data(42) extension exists." \
403 -S "ClientHello: early_data(42) extension exists." \
404 -S "EncryptedExtensions: early_data(42) extension exists." \
405 -S "early data bytes read"
406
Gilles Peskine365296a2024-09-13 14:15:46 +0200407requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
408requires_config_enabled MBEDTLS_SSL_CLI_C
409requires_config_enabled MBEDTLS_SSL_SRV_C
410requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
411requires_config_enabled MBEDTLS_HAVE_TIME
412requires_config_enabled MBEDTLS_SSL_EARLY_DATA
413requires_config_enabled MBEDTLS_DEBUG_C
414requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100415requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
416 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
417run_test "TLS 1.3 m->m: resumption, early data cli-disabled/srv-enabled" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100418 "$P_SRV debug_level=4 early_data=1 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200419 "$P_CLI debug_level=3 early_data=0 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100420 0 \
421 -c "Protocol is TLSv1.3" \
422 -c "Saving session for reuse... ok" \
423 -c "Reconnecting with saved session" \
424 -c "HTTP/1.0 200 OK" \
425 -c "received max_early_data_size" \
426 -c "NewSessionTicket: early_data(42) extension received." \
427 -C "ClientHello: early_data(42) extension exists." \
428 -C "EncryptedExtensions: early_data(42) extension received." \
429 -C "bytes of early data written" \
430 -s "Protocol is TLSv1.3" \
431 -s "key exchange mode: psk" \
432 -s "Select PSK ciphersuite" \
433 -s "Sent max_early_data_size" \
434 -s "NewSessionTicket: early_data(42) extension exists." \
435 -S "ClientHello: early_data(42) extension exists." \
436 -S "EncryptedExtensions: early_data(42) extension exists." \
437 -S "early data bytes read"
438
Gilles Peskine365296a2024-09-13 14:15:46 +0200439requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
440requires_config_enabled MBEDTLS_SSL_CLI_C
441requires_config_enabled MBEDTLS_SSL_SRV_C
442requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
443requires_config_enabled MBEDTLS_HAVE_TIME
444requires_config_enabled MBEDTLS_DEBUG_C
445requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100446requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
447 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100448run_test "TLS 1.3 m->m: resumption fails, ticket lifetime too long (7d + 1s)" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100449 "$P_SRV debug_level=2 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key ticket_timeout=604801 tickets=1" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200450 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100451 1 \
452 -c "Protocol is TLSv1.3" \
453 -C "Saving session for reuse... ok" \
454 -c "Reconnecting with saved session... failed" \
455 -S "Protocol is TLSv1.3" \
456 -S "key exchange mode: psk" \
457 -S "Select PSK ciphersuite" \
458 -s "Ticket lifetime (604801) is greater than 7 days."
459
Gilles Peskine365296a2024-09-13 14:15:46 +0200460requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
461requires_config_enabled MBEDTLS_SSL_CLI_C
462requires_config_enabled MBEDTLS_SSL_SRV_C
463requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
464requires_config_enabled MBEDTLS_HAVE_TIME
465requires_config_enabled MBEDTLS_DEBUG_C
466requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100467requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
468 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
469run_test "TLS 1.3 m->m: resumption fails, ticket lifetime=0" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100470 "$P_SRV debug_level=2 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key ticket_timeout=0 tickets=1" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200471 "$P_CLI debug_level=2 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100472 1 \
473 -c "Protocol is TLSv1.3" \
474 -C "Saving session for reuse... ok" \
475 -c "Discard new session ticket" \
476 -c "Reconnecting with saved session... failed" \
477 -s "Protocol is TLSv1.3" \
478 -S "key exchange mode: psk" \
479 -S "Select PSK ciphersuite"
480
Gilles Peskine365296a2024-09-13 14:15:46 +0200481requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
482requires_config_enabled MBEDTLS_SSL_CLI_C
483requires_config_enabled MBEDTLS_SSL_SRV_C
484requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
485requires_config_enabled MBEDTLS_HAVE_TIME
486requires_config_enabled MBEDTLS_DEBUG_C
487requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100488requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
489 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
490run_test "TLS 1.3 m->m: resumption fails, servername check failed" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100491 "$P_SRV debug_level=2 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key \
492 sni=localhost,../framework/data_files/server2.crt,../framework/data_files/server2.key,-,-,-,polarssl.example,../framework/data_files/server1-nospace.crt,../framework/data_files/server1.key,-,-,-" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200493 "$P_CLI debug_level=4 server_name=localhost reco_server_name=remote new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100494 1 \
495 -c "Protocol is TLSv1.3" \
496 -c "Saving session for reuse... ok" \
497 -c "Reconnecting with saved session" \
498 -c "Hostname mismatch the session ticket, disable session resumption." \
499 -s "Protocol is TLSv1.3" \
500 -S "key exchange mode: psk" \
501 -S "Select PSK ciphersuite"
502
Gilles Peskine365296a2024-09-13 14:15:46 +0200503requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
504requires_config_enabled MBEDTLS_SSL_CLI_C
505requires_config_enabled MBEDTLS_SSL_SRV_C
506requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
507requires_config_enabled MBEDTLS_HAVE_TIME
508requires_config_enabled MBEDTLS_DEBUG_C
509requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100510requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
511 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
512run_test "TLS 1.3 m->m: resumption fails, ticket auth failed." \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100513 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key tickets=8 dummy_ticket=1" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200514 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100515 0 \
516 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800517 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100518 -s "Protocol is TLSv1.3" \
519 -c "Saving session for reuse... ok" \
520 -c "Reconnecting with saved session" \
521 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800522 -s "ticket is not authentic" \
523 -S "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800524 -S "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800525 -S "Ticket age exceeds limitation" \
526 -S "Ticket age outside tolerance window"
527
Gilles Peskine365296a2024-09-13 14:15:46 +0200528requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
529requires_config_enabled MBEDTLS_SSL_CLI_C
530requires_config_enabled MBEDTLS_SSL_SRV_C
531requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
532requires_config_enabled MBEDTLS_HAVE_TIME
533requires_config_enabled MBEDTLS_DEBUG_C
534requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100535requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf5b47062022-12-15 13:46:23 +0100536 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100537run_test "TLS 1.3 m->m: resumption fails, ticket expired." \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100538 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key tickets=8 dummy_ticket=2" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200539 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800540 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100541 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800542 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100543 -s "Protocol is TLSv1.3" \
544 -c "Saving session for reuse... ok" \
545 -c "Reconnecting with saved session" \
546 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800547 -S "ticket is not authentic" \
548 -s "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800549 -S "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800550 -S "Ticket age exceeds limitation" \
551 -S "Ticket age outside tolerance window"
552
Gilles Peskine365296a2024-09-13 14:15:46 +0200553requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
554requires_config_enabled MBEDTLS_SSL_CLI_C
555requires_config_enabled MBEDTLS_SSL_SRV_C
556requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
557requires_config_enabled MBEDTLS_HAVE_TIME
558requires_config_enabled MBEDTLS_DEBUG_C
559requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100560requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf5b47062022-12-15 13:46:23 +0100561 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100562run_test "TLS 1.3 m->m: resumption fails, invalid creation time." \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100563 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key tickets=8 dummy_ticket=3" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200564 "$P_CLI debug_level=4 new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800565 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100566 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800567 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100568 -s "Protocol is TLSv1.3" \
569 -c "Saving session for reuse... ok" \
570 -c "Reconnecting with saved session" \
571 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800572 -S "ticket is not authentic" \
573 -S "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800574 -s "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800575 -S "Ticket age exceeds limitation" \
576 -S "Ticket age outside tolerance window"
577
Gilles Peskine365296a2024-09-13 14:15:46 +0200578requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
579requires_config_enabled MBEDTLS_SSL_CLI_C
580requires_config_enabled MBEDTLS_SSL_SRV_C
581requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
582requires_config_enabled MBEDTLS_HAVE_TIME
583requires_config_enabled MBEDTLS_DEBUG_C
584requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100585requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf5b47062022-12-15 13:46:23 +0100586 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100587run_test "TLS 1.3 m->m: resumption fails, ticket expired, too old" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100588 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key tickets=8 dummy_ticket=4" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200589 "$P_CLI debug_level=4 new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800590 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100591 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800592 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100593 -s "Protocol is TLSv1.3" \
594 -c "Saving session for reuse... ok" \
595 -c "Reconnecting with saved session" \
596 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800597 -S "ticket is not authentic" \
598 -S "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800599 -S "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800600 -s "Ticket age exceeds limitation" \
601 -S "Ticket age outside tolerance window"
602
Gilles Peskine365296a2024-09-13 14:15:46 +0200603requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
604requires_config_enabled MBEDTLS_SSL_CLI_C
605requires_config_enabled MBEDTLS_SSL_SRV_C
606requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
607requires_config_enabled MBEDTLS_HAVE_TIME
608requires_config_enabled MBEDTLS_DEBUG_C
609requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100610requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf5b47062022-12-15 13:46:23 +0100611 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100612run_test "TLS 1.3 m->m: resumption fails, age outside tolerance window, too young" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100613 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key tickets=8 dummy_ticket=5" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200614 "$P_CLI debug_level=4 new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800615 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100616 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800617 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100618 -s "Protocol is TLSv1.3" \
619 -c "Saving session for reuse... ok" \
620 -c "Reconnecting with saved session" \
621 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800622 -S "ticket is not authentic" \
623 -S "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800624 -S "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800625 -S "Ticket age exceeds limitation" \
626 -s "Ticket age outside tolerance window"
627
Gilles Peskine365296a2024-09-13 14:15:46 +0200628requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
629requires_config_enabled MBEDTLS_SSL_CLI_C
630requires_config_enabled MBEDTLS_SSL_SRV_C
631requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
632requires_config_enabled MBEDTLS_HAVE_TIME
633requires_config_enabled MBEDTLS_DEBUG_C
634requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100635requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf5b47062022-12-15 13:46:23 +0100636 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100637run_test "TLS 1.3 m->m: resumption fails, age outside tolerance window, too old" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100638 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key tickets=8 dummy_ticket=6" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200639 "$P_CLI debug_level=4 new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800640 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100641 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800642 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100643 -s "Protocol is TLSv1.3" \
644 -c "Saving session for reuse... ok" \
645 -c "Reconnecting with saved session" \
646 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800647 -S "ticket is not authentic" \
648 -S "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800649 -S "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800650 -S "Ticket age exceeds limitation" \
651 -s "Ticket age outside tolerance window"
652
Gilles Peskine365296a2024-09-13 14:15:46 +0200653requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
654requires_config_enabled MBEDTLS_SSL_CLI_C
655requires_config_enabled MBEDTLS_SSL_SRV_C
656requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
657requires_config_enabled MBEDTLS_HAVE_TIME
658requires_config_enabled MBEDTLS_DEBUG_C
659requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
660requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100661run_test "TLS 1.3 m->m: resumption fails, cli/tkt kex modes psk/none" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100662 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=7" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200663 "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100664 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100665 -c "Protocol is TLSv1.3" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100666 -s "key exchange mode: ephemeral" \
667 -S "key exchange mode: psk_ephemeral" \
668 -S "key exchange mode: psk$" \
Ronald Crone7398922024-03-10 12:11:02 +0100669 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100670 -s "No suitable PSK key exchange mode" \
671 -s "No usable PSK or ticket"
Jerry Yue5991322022-11-07 14:03:44 +0800672
Gilles Peskine365296a2024-09-13 14:15:46 +0200673requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
674requires_config_enabled MBEDTLS_SSL_CLI_C
675requires_config_enabled MBEDTLS_SSL_SRV_C
676requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
677requires_config_enabled MBEDTLS_HAVE_TIME
678requires_config_enabled MBEDTLS_DEBUG_C
679requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
680requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100681run_test "TLS 1.3 m->m: ephemeral over psk resumption, cli/tkt kex modes psk/psk" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100682 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=8" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200683 "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100684 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100685 -c "Protocol is TLSv1.3" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100686 -s "key exchange mode: ephemeral" \
687 -S "key exchange mode: psk_ephemeral" \
688 -S "key exchange mode: psk$" \
Ronald Crone7398922024-03-10 12:11:02 +0100689 -s "found matched identity" \
690 -S "No suitable PSK key exchange mode" \
691 -S "No usable PSK or ticket"
692
Gilles Peskine365296a2024-09-13 14:15:46 +0200693requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
694requires_config_enabled MBEDTLS_SSL_CLI_C
695requires_config_enabled MBEDTLS_SSL_SRV_C
696requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
697requires_config_enabled MBEDTLS_HAVE_TIME
698requires_config_enabled MBEDTLS_DEBUG_C
699requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
700requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100701run_test "TLS 1.3 m->m: resumption fails, cli/tkt kex modes psk/psk_ephemeral" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100702 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=9" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200703 "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral new_session_tickets=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100704 0 \
705 -c "Protocol is TLSv1.3" \
706 -s "key exchange mode: ephemeral" \
707 -S "key exchange mode: psk_ephemeral" \
708 -S "key exchange mode: psk$" \
709 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100710 -s "No suitable PSK key exchange mode" \
711 -s "No usable PSK or ticket"
712
Gilles Peskine365296a2024-09-13 14:15:46 +0200713requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
714requires_config_enabled MBEDTLS_SSL_CLI_C
715requires_config_enabled MBEDTLS_SSL_SRV_C
716requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
717requires_config_enabled MBEDTLS_HAVE_TIME
718requires_config_enabled MBEDTLS_DEBUG_C
719requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
720requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100721run_test "TLS 1.3 m->m: ephemeral over psk resumption, cli/tkt kex modes psk/psk_all" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100722 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=10" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200723 "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100724 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100725 -c "Protocol is TLSv1.3" \
726 -s "key exchange mode: ephemeral" \
727 -S "key exchange mode: psk_ephemeral" \
728 -S "key exchange mode: psk$" \
729 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100730 -S "No suitable PSK key exchange mode" \
Ronald Crone7398922024-03-10 12:11:02 +0100731 -S "No usable PSK or ticket"
Ronald Cron3cf41452024-03-10 10:44:14 +0100732
Gilles Peskine365296a2024-09-13 14:15:46 +0200733requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
734requires_config_enabled MBEDTLS_SSL_CLI_C
735requires_config_enabled MBEDTLS_SSL_SRV_C
736requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
737requires_config_enabled MBEDTLS_HAVE_TIME
738requires_config_enabled MBEDTLS_DEBUG_C
739requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
740requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100741run_test "TLS 1.3 m->m: resumption fails, cli/tkt kex modes psk_ephemeral/none" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100742 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=7" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200743 "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100744 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100745 -c "Protocol is TLSv1.3" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100746 -s "key exchange mode: ephemeral" \
747 -S "key exchange mode: psk_ephemeral" \
748 -S "key exchange mode: psk$" \
Ronald Crone7398922024-03-10 12:11:02 +0100749 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100750 -s "No suitable PSK key exchange mode" \
751 -s "No usable PSK or ticket"
Jerry Yue5991322022-11-07 14:03:44 +0800752
Gilles Peskine365296a2024-09-13 14:15:46 +0200753requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
754requires_config_enabled MBEDTLS_SSL_CLI_C
755requires_config_enabled MBEDTLS_SSL_SRV_C
756requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
757requires_config_enabled MBEDTLS_HAVE_TIME
758requires_config_enabled MBEDTLS_DEBUG_C
759requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
760requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100761run_test "TLS 1.3 m->m: resumption fails, cli/tkt kex modes psk_ephemeral/psk" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100762 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=8" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200763 "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100764 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100765 -c "Protocol is TLSv1.3" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100766 -s "key exchange mode: ephemeral" \
767 -S "key exchange mode: psk_ephemeral" \
768 -S "key exchange mode: psk$" \
Ronald Crone7398922024-03-10 12:11:02 +0100769 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100770 -s "No suitable PSK key exchange mode" \
771 -s "No usable PSK or ticket"
772
Gilles Peskine365296a2024-09-13 14:15:46 +0200773requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
774requires_config_enabled MBEDTLS_SSL_CLI_C
775requires_config_enabled MBEDTLS_SSL_SRV_C
776requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
777requires_config_enabled MBEDTLS_HAVE_TIME
778requires_config_enabled MBEDTLS_DEBUG_C
779requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
780requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100781run_test "TLS 1.3 m->m: resumption, cli/tkt kex modes psk_ephemeral/psk_ephemeral" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100782 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=9" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200783 "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100784 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100785 -c "Protocol is TLSv1.3" \
786 -s "key exchange mode: ephemeral" \
787 -s "key exchange mode: psk_ephemeral" \
788 -S "key exchange mode: psk$" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100789 -s "found matched identity" \
Ronald Crone7398922024-03-10 12:11:02 +0100790 -S "No suitable PSK key exchange mode" \
791 -S "No usable PSK or ticket"
Ronald Cron3cf41452024-03-10 10:44:14 +0100792
Gilles Peskine365296a2024-09-13 14:15:46 +0200793requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
794requires_config_enabled MBEDTLS_SSL_CLI_C
795requires_config_enabled MBEDTLS_SSL_SRV_C
796requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
797requires_config_enabled MBEDTLS_HAVE_TIME
798requires_config_enabled MBEDTLS_DEBUG_C
799requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
800requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100801run_test "TLS 1.3 m->m: resumption, cli/tkt kex modes psk_ephemeral/psk_all" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100802 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=10" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200803 "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100804 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100805 -c "Protocol is TLSv1.3" \
806 -s "key exchange mode: ephemeral" \
807 -s "key exchange mode: psk_ephemeral" \
808 -S "key exchange mode: psk$" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100809 -s "found matched identity" \
Ronald Crone7398922024-03-10 12:11:02 +0100810 -S "No suitable PSK key exchange mode" \
811 -S "No usable PSK or ticket"
Ronald Cron3cf41452024-03-10 10:44:14 +0100812
Gilles Peskine365296a2024-09-13 14:15:46 +0200813requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
814requires_config_enabled MBEDTLS_SSL_CLI_C
815requires_config_enabled MBEDTLS_SSL_SRV_C
816requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
817requires_config_enabled MBEDTLS_HAVE_TIME
818requires_config_enabled MBEDTLS_DEBUG_C
819requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
820requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
821requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100822run_test "TLS 1.3 m->m: resumption fails, cli/tkt kex modes psk_all/none" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100823 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=7" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200824 "$P_CLI debug_level=4 tls13_kex_modes=all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100825 0 \
826 -c "Pre-configured PSK number = 1" \
827 -S "sent selected_identity:" \
828 -s "key exchange mode: ephemeral" \
829 -S "key exchange mode: psk_ephemeral" \
830 -S "key exchange mode: psk$" \
831 -s "No suitable PSK key exchange mode" \
832 -s "No usable PSK or ticket"
833
Gilles Peskine365296a2024-09-13 14:15:46 +0200834requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
835requires_config_enabled MBEDTLS_SSL_CLI_C
836requires_config_enabled MBEDTLS_SSL_SRV_C
837requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
838requires_config_enabled MBEDTLS_HAVE_TIME
839requires_config_enabled MBEDTLS_DEBUG_C
840requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
841requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
842requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100843run_test "TLS 1.3 m->m: ephemeral over psk resumption, cli/tkt kex modes psk_all/psk" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100844 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=8" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200845 "$P_CLI debug_level=4 tls13_kex_modes=all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100846 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100847 -c "Protocol is TLSv1.3" \
848 -s "key exchange mode: ephemeral" \
849 -S "key exchange mode: psk_ephemeral" \
850 -S "key exchange mode: psk$" \
851 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100852 -S "No suitable PSK key exchange mode" \
Ronald Crone7398922024-03-10 12:11:02 +0100853 -S "No usable PSK or ticket"
Ronald Cron3cf41452024-03-10 10:44:14 +0100854
Gilles Peskine365296a2024-09-13 14:15:46 +0200855requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
856requires_config_enabled MBEDTLS_SSL_CLI_C
857requires_config_enabled MBEDTLS_SSL_SRV_C
858requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
859requires_config_enabled MBEDTLS_HAVE_TIME
860requires_config_enabled MBEDTLS_DEBUG_C
861requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
862requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
863requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100864run_test "TLS 1.3 m->m: resumption, cli/tkt kex modes psk_all/psk_ephemeral" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100865 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=9" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200866 "$P_CLI debug_level=4 tls13_kex_modes=all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100867 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100868 -c "Protocol is TLSv1.3" \
869 -s "key exchange mode: ephemeral" \
870 -s "key exchange mode: psk_ephemeral" \
871 -S "key exchange mode: psk$" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100872 -s "found matched identity" \
Ronald Crone7398922024-03-10 12:11:02 +0100873 -S "No suitable PSK key exchange mode" \
874 -S "No usable PSK or ticket"
Ronald Cron3cf41452024-03-10 10:44:14 +0100875
Gilles Peskine365296a2024-09-13 14:15:46 +0200876requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
877requires_config_enabled MBEDTLS_SSL_CLI_C
878requires_config_enabled MBEDTLS_SSL_SRV_C
879requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
880requires_config_enabled MBEDTLS_HAVE_TIME
881requires_config_enabled MBEDTLS_DEBUG_C
882requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
883requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
884requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100885run_test "TLS 1.3 m->m: resumption, cli/tkt kex modes psk_all/psk_all" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100886 "$P_SRV debug_level=4 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key dummy_ticket=10" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200887 "$P_CLI debug_level=4 tls13_kex_modes=all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100888 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100889 -c "Protocol is TLSv1.3" \
890 -s "key exchange mode: ephemeral" \
891 -s "key exchange mode: psk_ephemeral" \
892 -S "key exchange mode: psk$" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100893 -s "found matched identity" \
Ronald Crone7398922024-03-10 12:11:02 +0100894 -S "No suitable PSK key exchange mode" \
895 -S "No usable PSK or ticket"
Jerry Yue5991322022-11-07 14:03:44 +0800896
Ronald Cronf1ad73f2024-03-05 08:38:49 +0100897requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +0200898requires_config_enabled MBEDTLS_SSL_CLI_C
899requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
900requires_config_enabled MBEDTLS_HAVE_TIME
901requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
902requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron00fa13b2024-03-05 17:45:44 +0100903requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
904 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
905run_test "TLS 1.3 m->O: resumption" \
906 "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 1" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200907 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +0100908 0 \
909 -c "Protocol is TLSv1.3" \
Ronald Cron00fa13b2024-03-05 17:45:44 +0100910 -c "Saving session for reuse... ok" \
911 -c "Reconnecting with saved session... ok" \
912 -c "HTTP/1.0 200 ok"
913
Ronald Cron54a9b112024-03-26 11:17:10 +0100914requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +0200915requires_config_enabled MBEDTLS_SSL_CLI_C
916requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
917requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron54a9b112024-03-26 11:17:10 +0100918requires_config_disabled MBEDTLS_SSL_SESSION_TICKETS
919run_test "TLS 1.3 m->O: resumption fails, no ticket support" \
920 "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 1" \
921 "$P_CLI debug_level=3 reco_mode=1 reconnect=1" \
922 1 \
923 -c "Protocol is TLSv1.3" \
924 -C "Saving session for reuse... ok" \
925 -C "Reconnecting with saved session... ok" \
Ronald Cron97dc5832024-08-28 09:34:34 +0200926 -c "Ignoring NewSessionTicket, not supported."
Ronald Cron54a9b112024-03-26 11:17:10 +0100927
Ronald Cron57ad1822024-08-27 19:38:41 +0200928requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +0200929requires_config_enabled MBEDTLS_SSL_CLI_C
930requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
931requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
932requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200933run_test "TLS 1.3 m->O: resumption fails, ticket handling disabled (explicit)" \
Ronald Cron57ad1822024-08-27 19:38:41 +0200934 "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 1" \
935 "$P_CLI debug_level=3 new_session_tickets=0 reco_mode=1 reconnect=1" \
936 1 \
937 -c "Protocol is TLSv1.3" \
938 -C "Saving session for reuse... ok" \
939 -C "Reconnecting with saved session... ok" \
Ronald Cron97dc5832024-08-28 09:34:34 +0200940 -c "Ignoring NewSessionTicket, handling disabled."
Ronald Cron57ad1822024-08-27 19:38:41 +0200941
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200942requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +0200943requires_config_enabled MBEDTLS_SSL_CLI_C
944requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
945requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
946requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200947run_test "TLS 1.3 m->O: resumption fails, ticket handling disabled (default)" \
948 "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 1" \
949 "$P_CLI debug_level=3 reco_mode=1 reconnect=1" \
950 1 \
951 -c "Protocol is TLSv1.3" \
952 -C "Saving session for reuse... ok" \
953 -C "Reconnecting with saved session... ok" \
954 -c "Ignoring NewSessionTicket, handling disabled."
955
Ronald Cron00fa13b2024-03-05 17:45:44 +0100956# No early data m->O tests for the time being. The option -early_data is needed
957# to enable early data on OpenSSL server and it is not compatible with the
958# -www option we usually use for testing with OpenSSL server (see
959# O_NEXT_SRV_EARLY_DATA definition). In this configuration when running the
960# ephemeral then ticket based scenario we use for early data testing the first
961# handshake fails. The following skipped test is here to illustrate the kind
962# of testing we would like to do.
963skip_next_test
964requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +0200965requires_config_enabled MBEDTLS_SSL_CLI_C
966requires_config_enabled MBEDTLS_DEBUG_C
967requires_config_enabled MBEDTLS_SSL_EARLY_DATA
968requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
969requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron00fa13b2024-03-05 17:45:44 +0100970requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
971 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
972run_test "TLS 1.3 m->O: resumption with early data" \
973 "$O_NEXT_SRV_EARLY_DATA -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 1" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200974 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron00fa13b2024-03-05 17:45:44 +0100975 0 \
976 -c "Protocol is TLSv1.3" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +0100977 -c "Saving session for reuse... ok" \
978 -c "Reconnecting with saved session" \
Ronald Cron00fa13b2024-03-05 17:45:44 +0100979 -c "HTTP/1.0 200 OK" \
980 -c "received max_early_data_size: 16384" \
981 -c "NewSessionTicket: early_data(42) extension received." \
982 -c "ClientHello: early_data(42) extension exists." \
983 -c "EncryptedExtensions: early_data(42) extension received." \
984 -c "bytes of early data written" \
985 -s "decrypted early data with length:"
Ronald Cronf1ad73f2024-03-05 08:38:49 +0100986
987requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200988requires_config_enabled MBEDTLS_SSL_CLI_C
989requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
990requires_config_enabled MBEDTLS_HAVE_TIME
991requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
992requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +0100993requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
994 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
995run_test "TLS 1.3 m->G: resumption" \
996 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200997 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +0100998 0 \
999 -c "Protocol is TLSv1.3" \
Ronald Cron05210082024-03-05 16:34:51 +01001000 -c "Saving session for reuse... ok" \
1001 -c "Reconnecting with saved session... ok" \
1002 -c "HTTP/1.0 200 OK"
1003
1004requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001005requires_config_enabled MBEDTLS_SSL_CLI_C
1006requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1007requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron54a9b112024-03-26 11:17:10 +01001008requires_config_disabled MBEDTLS_SSL_SESSION_TICKETS
1009run_test "TLS 1.3 m->G: resumption fails, no ticket support" \
1010 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \
1011 "$P_CLI debug_level=3 reco_mode=1 reconnect=1" \
1012 1 \
1013 -c "Protocol is TLSv1.3" \
1014 -C "Saving session for reuse... ok" \
1015 -C "Reconnecting with saved session... ok" \
Ronald Cron97dc5832024-08-28 09:34:34 +02001016 -c "Ignoring NewSessionTicket, not supported."
Ronald Cron54a9b112024-03-26 11:17:10 +01001017
1018requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001019requires_config_enabled MBEDTLS_SSL_CLI_C
1020requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1021requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1022requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001023run_test "TLS 1.3 m->G: resumption fails, ticket handling disabled (explicit)" \
Ronald Cron57ad1822024-08-27 19:38:41 +02001024 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \
1025 "$P_CLI debug_level=3 new_session_tickets=0 reco_mode=1 reconnect=1" \
1026 1 \
1027 -c "Protocol is TLSv1.3" \
1028 -C "Saving session for reuse... ok" \
1029 -C "Reconnecting with saved session... ok" \
Ronald Cron97dc5832024-08-28 09:34:34 +02001030 -c "Ignoring NewSessionTicket, handling disabled."
Ronald Cron57ad1822024-08-27 19:38:41 +02001031
1032requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001033requires_config_enabled MBEDTLS_SSL_CLI_C
1034requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1035requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1036requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001037run_test "TLS 1.3 m->G: resumption fails, ticket handling disabled (default)" \
1038 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \
1039 "$P_CLI debug_level=3 reco_mode=1 reconnect=1" \
1040 1 \
1041 -c "Protocol is TLSv1.3" \
1042 -C "Saving session for reuse... ok" \
1043 -C "Reconnecting with saved session... ok" \
1044 -c "Ignoring NewSessionTicket, handling disabled."
1045
1046requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001047requires_config_enabled MBEDTLS_SSL_CLI_C
1048requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1049requires_config_enabled MBEDTLS_HAVE_TIME
1050requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1051requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001052requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1053 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1054requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
1055run_test "TLS 1.3 m->G: resumption with AES-256-GCM-SHA384 only" \
1056 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001057 "$P_CLI force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron05210082024-03-05 16:34:51 +01001058 0 \
1059 -c "Protocol is TLSv1.3" \
1060 -c "Ciphersuite is TLS1-3-AES-256-GCM-SHA384" \
1061 -c "Saving session for reuse... ok" \
1062 -c "Reconnecting with saved session... ok" \
1063 -c "HTTP/1.0 200 OK"
1064
1065requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001066requires_config_enabled MBEDTLS_SSL_CLI_C
1067requires_config_enabled MBEDTLS_DEBUG_C
1068requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1069requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1070requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001071requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1072 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1073run_test "TLS 1.3 m->G: resumption with early data" \
1074 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert \
1075 --earlydata --maxearlydata 16384" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001076 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron05210082024-03-05 16:34:51 +01001077 0 \
1078 -c "Protocol is TLSv1.3" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001079 -c "Saving session for reuse... ok" \
1080 -c "Reconnecting with saved session" \
1081 -c "HTTP/1.0 200 OK" \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001082 -c "received max_early_data_size: 16384" \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001083 -c "NewSessionTicket: early_data(42) extension received." \
1084 -c "ClientHello: early_data(42) extension exists." \
1085 -c "EncryptedExtensions: early_data(42) extension received." \
Ronald Cron05210082024-03-05 16:34:51 +01001086 -c "bytes of early data written" \
1087 -s "decrypted early data with length:"
Ronald Cronc8d604d2024-03-05 15:05:47 +01001088
1089requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001090requires_config_enabled MBEDTLS_SSL_CLI_C
1091requires_config_enabled MBEDTLS_DEBUG_C
1092requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1093requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1094requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cronc8d604d2024-03-05 15:05:47 +01001095requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1096 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001097requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
1098run_test "TLS 1.3 m->G: resumption with early data, AES-256-GCM-SHA384 only" \
1099 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert \
1100 --earlydata --maxearlydata 16384" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001101 "$P_CLI debug_level=3 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001102 0 \
Ronald Cron05210082024-03-05 16:34:51 +01001103 -c "Protocol is TLSv1.3" \
1104 -c "Ciphersuite is TLS1-3-AES-256-GCM-SHA384" \
1105 -c "Saving session for reuse... ok" \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001106 -c "Reconnecting with saved session" \
Ronald Cron05210082024-03-05 16:34:51 +01001107 -c "HTTP/1.0 200 OK" \
1108 -c "received max_early_data_size: 16384" \
1109 -c "NewSessionTicket: early_data(42) extension received." \
1110 -c "ClientHello: early_data(42) extension exists." \
1111 -c "EncryptedExtensions: early_data(42) extension received." \
1112 -c "bytes of early data written" \
1113 -s "decrypted early data with length:"
1114
1115requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001116requires_config_enabled MBEDTLS_SSL_CLI_C
1117requires_config_enabled MBEDTLS_DEBUG_C
1118requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1119requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1120requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001121requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1122 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1123run_test "TLS 1.3 m->G: resumption, early data cli-enabled/srv-disabled" \
1124 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --disable-client-cert" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001125 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron05210082024-03-05 16:34:51 +01001126 0 \
1127 -c "Protocol is TLSv1.3" \
1128 -c "Saving session for reuse... ok" \
1129 -c "Reconnecting with saved session" \
1130 -c "HTTP/1.0 200 OK" \
1131 -C "received max_early_data_size: 16384" \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001132 -C "NewSessionTicket: early_data(42) extension received." \
Ronald Cron05210082024-03-05 16:34:51 +01001133
1134requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001135requires_config_enabled MBEDTLS_SSL_CLI_C
1136requires_config_enabled MBEDTLS_DEBUG_C
1137requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1138requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1139requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001140requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1141 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1142run_test "TLS 1.3 m->G: resumption, early data cli-default/srv-enabled" \
1143 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert \
1144 --earlydata --maxearlydata 16384" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001145 "$P_CLI debug_level=3 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron05210082024-03-05 16:34:51 +01001146 0 \
1147 -c "Protocol is TLSv1.3" \
1148 -c "Saving session for reuse... ok" \
1149 -c "Reconnecting with saved session" \
1150 -c "HTTP/1.0 200 OK" \
1151 -c "received max_early_data_size: 16384" \
1152 -c "NewSessionTicket: early_data(42) extension received." \
1153 -C "ClientHello: early_data(42) extension exists." \
1154
1155requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001156requires_config_enabled MBEDTLS_SSL_CLI_C
1157requires_config_enabled MBEDTLS_DEBUG_C
1158requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1159requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1160requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001161requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1162 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1163run_test "TLS 1.3 m->G: resumption, early data cli-disabled/srv-enabled" \
1164 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert \
1165 --earlydata --maxearlydata 16384" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001166 "$P_CLI debug_level=3 early_data=0 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron05210082024-03-05 16:34:51 +01001167 0 \
1168 -c "Protocol is TLSv1.3" \
1169 -c "Saving session for reuse... ok" \
1170 -c "Reconnecting with saved session" \
1171 -c "HTTP/1.0 200 OK" \
1172 -c "received max_early_data_size: 16384" \
1173 -c "NewSessionTicket: early_data(42) extension received." \
1174 -C "ClientHello: early_data(42) extension exists." \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001175
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001176requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001177requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1178requires_config_enabled MBEDTLS_SSL_SRV_C
1179requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1180requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron820199a2024-03-10 10:39:26 +01001181requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001182 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1183# https://github.com/openssl/openssl/issues/10714
1184# Until now, OpenSSL client does not support reconnect.
1185skip_next_test
Ronald Cron820199a2024-03-10 10:39:26 +01001186run_test "TLS 1.3 O->m: resumption" \
1187 "$P_SRV debug_level=2 tickets=1" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001188 "$O_NEXT_CLI -msg -debug -tls1_3 -reconnect" \
1189 0 \
Ronald Cron820199a2024-03-10 10:39:26 +01001190 -s "Protocol is TLSv1.3" \
1191 -s "key exchange mode: psk" \
1192 -s "Select PSK ciphersuite"
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001193
1194requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001195requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1196requires_config_enabled MBEDTLS_HAVE_TIME
1197requires_config_enabled MBEDTLS_SSL_SRV_C
1198requires_config_enabled MBEDTLS_DEBUG_C
1199requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1200requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001201requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001202 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001203run_test "TLS 1.3 G->m: resumption" \
1204 "$P_SRV debug_level=2 tickets=1" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001205 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \
1206 0 \
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001207 -s "Protocol is TLSv1.3" \
1208 -s "key exchange mode: psk" \
1209 -s "Select PSK ciphersuite"
1210
1211requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001212requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1213requires_config_enabled MBEDTLS_HAVE_TIME
1214requires_config_enabled MBEDTLS_SSL_SRV_C
1215requires_config_enabled MBEDTLS_DEBUG_C
1216requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1217requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001218requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
1219 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1220requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
1221# Test the session resumption when the cipher suite for the original session is
1222# TLS1-3-AES-256-GCM-SHA384. In that case, the PSK is 384 bits long and not
1223# 256 bits long as with all the other TLS 1.3 cipher suites.
1224run_test "TLS 1.3 G->m: resumption with AES-256-GCM-SHA384 only" \
1225 "$P_SRV debug_level=2 tickets=1" \
1226 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM -V -r" \
1227 0 \
1228 -s "Protocol is TLSv1.3" \
1229 -s "key exchange mode: psk" \
1230 -s "Select PSK ciphersuite: 1302 - TLS1-3-AES-256-GCM-SHA384"
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001231
Ronald Cron854df132024-03-05 17:50:50 +01001232EARLY_DATA_INPUT_LEN_BLOCKS=$(( ( $( cat $EARLY_DATA_INPUT | wc -c ) + 31 ) / 32 ))
1233EARLY_DATA_INPUT_LEN=$(( $EARLY_DATA_INPUT_LEN_BLOCKS * 32 ))
1234
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001235requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001236requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1237requires_config_enabled MBEDTLS_HAVE_TIME
1238requires_config_enabled MBEDTLS_SSL_SRV_C
1239requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1240requires_config_enabled MBEDTLS_DEBUG_C
1241requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1242requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron854df132024-03-05 17:50:50 +01001243requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
1244 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001245run_test "TLS 1.3 G->m: resumption with early data" \
1246 "$P_SRV debug_level=4 tickets=1 early_data=1 max_early_data_size=$EARLY_DATA_INPUT_LEN" \
1247 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r \
1248 --earlydata $EARLY_DATA_INPUT" \
Ronald Cron854df132024-03-05 17:50:50 +01001249 0 \
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001250 -s "Protocol is TLSv1.3" \
1251 -s "key exchange mode: psk" \
1252 -s "Select PSK ciphersuite" \
1253 -s "Sent max_early_data_size=$EARLY_DATA_INPUT_LEN" \
1254 -s "NewSessionTicket: early_data(42) extension exists." \
1255 -s "ClientHello: early_data(42) extension exists." \
1256 -s "EncryptedExtensions: early_data(42) extension exists." \
1257 -s "$( head -1 $EARLY_DATA_INPUT )" \
1258 -s "$( tail -1 $EARLY_DATA_INPUT )" \
1259 -s "200 early data bytes read" \
Ronald Cron854df132024-03-05 17:50:50 +01001260 -s "106 early data bytes read"
1261
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001262requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001263requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1264requires_config_enabled MBEDTLS_HAVE_TIME
1265requires_config_enabled MBEDTLS_SSL_SRV_C
1266requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1267requires_config_enabled MBEDTLS_DEBUG_C
1268requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1269requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001270requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001271 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001272requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001273run_test "TLS 1.3 G->m: resumption with early data, AES-256-GCM-SHA384 only" \
1274 "$P_SRV debug_level=4 tickets=1 early_data=1 max_early_data_size=$EARLY_DATA_INPUT_LEN" \
1275 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM -V -r \
1276 --earlydata $EARLY_DATA_INPUT" \
1277 0 \
1278 -s "Protocol is TLSv1.3" \
1279 -s "key exchange mode: psk" \
1280 -s "Select PSK ciphersuite: 1302 - TLS1-3-AES-256-GCM-SHA384" \
1281 -s "Sent max_early_data_size=$EARLY_DATA_INPUT_LEN" \
1282 -s "NewSessionTicket: early_data(42) extension exists." \
1283 -s "ClientHello: early_data(42) extension exists." \
1284 -s "EncryptedExtensions: early_data(42) extension exists." \
1285 -s "$( head -1 $EARLY_DATA_INPUT )" \
1286 -s "$( tail -1 $EARLY_DATA_INPUT )" \
1287 -s "200 early data bytes read" \
1288 -s "106 early data bytes read"
1289
1290# The Mbed TLS server does not allow early data for the ticket it sends but
1291# the GnuTLS indicates early data anyway when resuming with the ticket and
1292# sends early data. The Mbed TLS server does not expect early data in
1293# association with the ticket thus it eventually fails the resumption
1294# handshake. The GnuTLS client behavior is not compliant here with the TLS 1.3
1295# specification and thus its behavior may change in following versions.
1296requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001297requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1298requires_config_enabled MBEDTLS_HAVE_TIME
1299requires_config_enabled MBEDTLS_SSL_SRV_C
1300requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1301requires_config_enabled MBEDTLS_DEBUG_C
1302requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1303requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001304requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
1305 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1306run_test "TLS 1.3 G->m: resumption, early data cli-enabled/srv-default" \
1307 "$P_SRV debug_level=4 tickets=1" \
1308 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r \
1309 --earlydata $EARLY_DATA_INPUT" \
1310 1 \
1311 -s "Protocol is TLSv1.3" \
1312 -s "key exchange mode: psk" \
1313 -s "Select PSK ciphersuite" \
1314 -S "Sent max_early_data_size" \
1315 -S "NewSessionTicket: early_data(42) extension exists." \
1316 -s "ClientHello: early_data(42) extension exists." \
1317 -s "EarlyData: rejected, feature disabled in server configuration." \
1318 -S "EncryptedExtensions: early_data(42) extension exists." \
1319 -s "EarlyData: deprotect and discard app data records" \
1320 -s "EarlyData: Too much early data received"
1321
1322# The Mbed TLS server does not allow early data for the ticket it sends but
1323# the GnuTLS indicates early data anyway when resuming with the ticket and
1324# sends early data. The Mbed TLS server does not expect early data in
1325# association with the ticket thus it eventually fails the resumption
1326# handshake. The GnuTLS client behavior is not compliant here with the TLS 1.3
1327# specification and thus its behavior may change in following versions.
1328requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001329requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1330requires_config_enabled MBEDTLS_HAVE_TIME
1331requires_config_enabled MBEDTLS_SSL_SRV_C
1332requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1333requires_config_enabled MBEDTLS_DEBUG_C
1334requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1335requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001336requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
1337 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1338run_test "TLS 1.3 G->m: resumption, early data cli-enabled/srv-disabled" \
1339 "$P_SRV debug_level=4 tickets=1 early_data=0" \
1340 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r \
1341 --earlydata $EARLY_DATA_INPUT" \
1342 1 \
1343 -s "Protocol is TLSv1.3" \
1344 -s "key exchange mode: psk" \
1345 -s "Select PSK ciphersuite" \
1346 -S "Sent max_early_data_size" \
1347 -S "NewSessionTicket: early_data(42) extension exists." \
1348 -s "ClientHello: early_data(42) extension exists." \
1349 -s "EarlyData: rejected, feature disabled in server configuration." \
1350 -S "EncryptedExtensions: early_data(42) extension exists." \
1351 -s "EarlyData: deprotect and discard app data records" \
1352 -s "EarlyData: Too much early data received"
1353
1354requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001355requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1356requires_config_enabled MBEDTLS_HAVE_TIME
1357requires_config_enabled MBEDTLS_SSL_SRV_C
1358requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1359requires_config_enabled MBEDTLS_DEBUG_C
1360requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
1361requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001362requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
1363 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1364run_test "TLS 1.3 G->m: resumption, early data cli-disabled/srv-enabled" \
1365 "$P_SRV debug_level=4 tickets=1 early_data=1" \
1366 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \
1367 0 \
1368 -s "Protocol is TLSv1.3" \
1369 -s "key exchange mode: psk" \
1370 -s "Select PSK ciphersuite" \
1371 -s "Sent max_early_data_size" \
1372 -s "NewSessionTicket: early_data(42) extension exists." \
1373 -S "ClientHello: early_data(42) extension exists." \
1374 -S "EncryptedExtensions: early_data(42) extension exists."
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001375
Gilles Peskine365296a2024-09-13 14:15:46 +02001376requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1377requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1378requires_config_enabled MBEDTLS_SSL_CLI_C
1379requires_config_enabled MBEDTLS_SSL_SRV_C
1380requires_config_enabled MBEDTLS_DEBUG_C
1381requires_config_enabled MBEDTLS_HAVE_TIME
1382requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1383requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1f63fe42024-02-23 15:49:12 +01001384run_test "TLS 1.3 m->m: Ephemeral over PSK kex with early data enabled" \
Ronald Cron74191a52024-03-09 17:38:16 +01001385 "$P_SRV force_version=tls13 debug_level=4 early_data=1 max_early_data_size=1024" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001386 "$P_CLI debug_level=4 early_data=1 tls13_kex_modes=psk_or_ephemeral new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron1f63fe42024-02-23 15:49:12 +01001387 0 \
1388 -s "key exchange mode: ephemeral" \
1389 -S "key exchange mode: psk" \
1390 -s "found matched identity" \
1391 -s "EarlyData: rejected, not a session resumption" \
1392 -C "EncryptedExtensions: early_data(42) extension exists."