blob: 003401c10ac72687052d3009bfaea8fe382652ba [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
Jerry Yu616ba752022-11-08 21:49:47 +08009requires_config_enabled MBEDTLS_SSL_SRV_C
10requires_config_enabled MBEDTLS_DEBUG_C
11requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu616ba752022-11-08 21:49:47 +080012run_test "TLS 1.3: PSK: No valid ciphersuite. G->m" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010013 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yu616ba752022-11-08 21:49:47 +080014 "$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 \
15 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
16 localhost" \
17 1 \
18 -s "found psk key exchange modes extension" \
19 -s "found pre_shared_key extension" \
20 -s "Found PSK_EPHEMERAL KEX MODE" \
21 -s "Found PSK KEX MODE" \
22 -s "No matched ciphersuite"
23
24requires_openssl_tls1_3
25requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Jerry Yu616ba752022-11-08 21:49:47 +080026requires_config_enabled MBEDTLS_SSL_SRV_C
27requires_config_enabled MBEDTLS_DEBUG_C
28requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu616ba752022-11-08 21:49:47 +080029run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010030 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yu616ba752022-11-08 21:49:47 +080031 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -ciphersuites TLS_AES_256_GCM_SHA384\
32 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
33 1 \
34 -s "found psk key exchange modes extension" \
35 -s "found pre_shared_key extension" \
36 -s "Found PSK_EPHEMERAL KEX MODE" \
37 -s "Found PSK KEX MODE" \
38 -s "No matched ciphersuite"
39
Gilles Peskine365296a2024-09-13 14:15:46 +020040requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
41requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
42requires_config_enabled MBEDTLS_SSL_SRV_C
43requires_config_enabled MBEDTLS_SSL_CLI_C
44requires_config_enabled MBEDTLS_DEBUG_C
45requires_config_enabled MBEDTLS_HAVE_TIME
46requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu616ba752022-11-08 21:49:47 +080047run_test "TLS 1.3 m->m: Multiple PSKs: valid ticket, reconnect with ticket" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010048 "$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 +020049 "$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 +080050 0 \
51 -c "Pre-configured PSK number = 2" \
52 -s "sent selected_identity: 0" \
53 -s "key exchange mode: psk_ephemeral" \
54 -S "key exchange mode: psk$" \
55 -S "key exchange mode: ephemeral$" \
56 -S "ticket is not authentic"
57
Gilles Peskine365296a2024-09-13 14:15:46 +020058requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
59requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
60requires_config_enabled MBEDTLS_SSL_SRV_C
61requires_config_enabled MBEDTLS_SSL_CLI_C
62requires_config_enabled MBEDTLS_DEBUG_C
63requires_config_enabled MBEDTLS_HAVE_TIME
64requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu616ba752022-11-08 21:49:47 +080065run_test "TLS 1.3 m->m: Multiple PSKs: invalid ticket, reconnect with PSK" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010066 "$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 +020067 "$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 +080068 0 \
69 -c "Pre-configured PSK number = 2" \
70 -s "sent selected_identity: 1" \
71 -s "key exchange mode: psk_ephemeral" \
72 -S "key exchange mode: psk$" \
73 -S "key exchange mode: ephemeral$" \
74 -s "ticket is not authentic"
75
Ronald Cron3cf41452024-03-10 10:44:14 +010076requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020077requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020078requires_config_enabled MBEDTLS_SSL_SRV_C
79requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron3cf41452024-03-10 10:44:14 +010080requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
81run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \
82 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
83 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
84 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
85 localhost" \
86 1 \
87 -s "found psk key exchange modes extension" \
88 -s "found pre_shared_key extension" \
89 -s "Found PSK_EPHEMERAL KEX MODE" \
90 -S "Found PSK KEX MODE" \
91 -S "key exchange mode: psk$" \
92 -S "key exchange mode: psk_ephemeral" \
93 -S "key exchange mode: ephemeral"
94
95requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020096requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
97requires_config_enabled MBEDTLS_SSL_SRV_C
98requires_config_enabled MBEDTLS_DEBUG_C
Gilles Peskine365296a2024-09-13 14:15:46 +020099requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
100requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
101requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron3cf41452024-03-10 10:44:14 +0100102run_test "TLS 1.3: G->m: PSK: configured psk only, good." \
103 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
104 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \
105 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
106 localhost" \
107 0 \
108 -s "found psk key exchange modes extension" \
109 -s "found pre_shared_key extension" \
110 -s "Found PSK_EPHEMERAL KEX MODE" \
111 -s "Found PSK KEX MODE" \
112 -s "key exchange mode: psk$"
113
114requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200115requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
116requires_config_enabled MBEDTLS_SSL_SRV_C
117requires_config_enabled MBEDTLS_DEBUG_C
Gilles Peskine365296a2024-09-13 14:15:46 +0200118requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
119requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
120requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron3cf41452024-03-10 10:44:14 +0100121run_test "TLS 1.3: G->m: PSK: configured psk_ephemeral only, good." \
122 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
123 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \
124 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
125 localhost" \
126 0 \
127 -s "found psk key exchange modes extension" \
128 -s "found pre_shared_key extension" \
129 -s "Found PSK_EPHEMERAL KEX MODE" \
130 -s "Found PSK KEX MODE" \
131 -s "key exchange mode: psk_ephemeral$"
132
133requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200134requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
135requires_config_enabled MBEDTLS_SSL_SRV_C
136requires_config_enabled MBEDTLS_DEBUG_C
Gilles Peskine365296a2024-09-13 14:15:46 +0200137requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
138requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
139requires_config_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Cron3cf41452024-03-10 10:44:14 +0100140run_test "TLS 1.3: G->m: PSK: configured ephemeral only, good." \
141 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
142 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \
143 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
144 localhost" \
145 0 \
146 -s "key exchange mode: ephemeral$"
147
Gilles Peskine365296a2024-09-13 14:15:46 +0200148requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
149requires_config_enabled MBEDTLS_SSL_CLI_C
150requires_config_enabled MBEDTLS_SSL_SRV_C
151requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
152requires_config_enabled MBEDTLS_HAVE_TIME
153requires_config_enabled MBEDTLS_DEBUG_C
154requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron3cf41452024-03-10 10:44:14 +0100155requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
156 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100157run_test "TLS 1.3 m->m: resumption" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100158 "$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 +0200159 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800160 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100161 -c "Protocol is TLSv1.3" \
162 -c "Saving session for reuse... ok" \
163 -c "Reconnecting with saved session... ok" \
164 -c "HTTP/1.0 200 OK" \
165 -s "Protocol is TLSv1.3" \
166 -s "key exchange mode: psk" \
167 -s "Select PSK ciphersuite"
168
Gilles Peskine365296a2024-09-13 14:15:46 +0200169requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
170requires_config_enabled MBEDTLS_SSL_CLI_C
171requires_config_enabled MBEDTLS_SSL_SRV_C
172requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
173requires_config_enabled MBEDTLS_HAVE_TIME
174requires_config_enabled MBEDTLS_DEBUG_C
175requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100176requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
177 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
178run_test "TLS 1.3 m->m: resumption with servername" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100179 "$P_SRV debug_level=2 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key \
180 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 +0200181 "$P_CLI server_name=localhost new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100182 0 \
183 -c "Protocol is TLSv1.3" \
184 -c "Saving session for reuse... ok" \
185 -c "Reconnecting with saved session... ok" \
186 -c "HTTP/1.0 200 OK" \
187 -s "Protocol is TLSv1.3" \
188 -s "key exchange mode: psk" \
189 -s "Select PSK ciphersuite"
190
Gilles Peskine365296a2024-09-13 14:15:46 +0200191requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
192requires_config_enabled MBEDTLS_SSL_CLI_C
193requires_config_enabled MBEDTLS_SSL_SRV_C
194requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
195requires_config_enabled MBEDTLS_HAVE_TIME
196requires_config_enabled MBEDTLS_DEBUG_C
197requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100198requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
199 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
200run_test "TLS 1.3 m->m: resumption with ticket max lifetime (7d)" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100201 "$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 +0200202 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100203 0 \
204 -c "Protocol is TLSv1.3" \
205 -c "Saving session for reuse... ok" \
206 -c "Reconnecting with saved session... ok" \
207 -c "HTTP/1.0 200 OK" \
208 -s "Protocol is TLSv1.3" \
209 -s "key exchange mode: psk" \
210 -s "Select PSK ciphersuite"
211
Gilles Peskine365296a2024-09-13 14:15:46 +0200212requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
213requires_config_enabled MBEDTLS_SSL_CLI_C
214requires_config_enabled MBEDTLS_SSL_SRV_C
215requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
216requires_config_enabled MBEDTLS_HAVE_TIME
217requires_config_enabled MBEDTLS_DEBUG_C
218requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100219requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
220 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100221requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
222run_test "TLS 1.3 m->m: resumption with AES-256-GCM-SHA384 only" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100223 "$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 +0200224 "$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 +0100225 0 \
226 -c "Protocol is TLSv1.3" \
227 -c "Ciphersuite is TLS1-3-AES-256-GCM-SHA384" \
228 -c "Saving session for reuse... ok" \
229 -c "Reconnecting with saved session... ok" \
230 -c "HTTP/1.0 200 OK" \
231 -s "Protocol is TLSv1.3" \
232 -s "key exchange mode: psk" \
233 -s "Select PSK ciphersuite: 1302 - TLS1-3-AES-256-GCM-SHA384"
234
Gilles Peskine365296a2024-09-13 14:15:46 +0200235requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
236requires_config_enabled MBEDTLS_SSL_CLI_C
237requires_config_enabled MBEDTLS_SSL_SRV_C
238requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
239requires_config_enabled MBEDTLS_HAVE_TIME
240requires_config_enabled MBEDTLS_SSL_EARLY_DATA
241requires_config_enabled MBEDTLS_DEBUG_C
242requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100243requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
244 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
245run_test "TLS 1.3 m->m: resumption with early data" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100246 "$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 +0200247 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100248 0 \
249 -c "Protocol is TLSv1.3" \
250 -c "Saving session for reuse... ok" \
251 -c "Reconnecting with saved session" \
252 -c "HTTP/1.0 200 OK" \
253 -c "received max_early_data_size" \
254 -c "NewSessionTicket: early_data(42) extension received." \
255 -c "ClientHello: early_data(42) extension exists." \
256 -c "EncryptedExtensions: early_data(42) extension received." \
257 -c "bytes of early data written" \
258 -C "0 bytes of early data written" \
259 -s "Protocol is TLSv1.3" \
260 -s "key exchange mode: psk" \
261 -s "Select PSK ciphersuite" \
262 -s "Sent max_early_data_size" \
263 -s "NewSessionTicket: early_data(42) extension exists." \
264 -s "ClientHello: early_data(42) extension exists." \
265 -s "EncryptedExtensions: early_data(42) extension exists." \
266 -s "early data bytes read"
267
Gilles Peskine365296a2024-09-13 14:15:46 +0200268requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
269requires_config_enabled MBEDTLS_SSL_CLI_C
270requires_config_enabled MBEDTLS_SSL_SRV_C
271requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
272requires_config_enabled MBEDTLS_HAVE_TIME
273requires_config_enabled MBEDTLS_SSL_EARLY_DATA
274requires_config_enabled MBEDTLS_DEBUG_C
275requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100276requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
277 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
278requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
279run_test "TLS 1.3 m->m: resumption with early data, AES-256-GCM-SHA384 only" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100280 "$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 +0200281 "$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 +0100282 0 \
283 -c "Protocol is TLSv1.3" \
284 -c "Ciphersuite is TLS1-3-AES-256-GCM-SHA384" \
285 -c "Saving session for reuse... ok" \
286 -c "Reconnecting with saved session" \
287 -c "HTTP/1.0 200 OK" \
288 -c "received max_early_data_size" \
289 -c "NewSessionTicket: early_data(42) extension received." \
290 -c "ClientHello: early_data(42) extension exists." \
291 -c "EncryptedExtensions: early_data(42) extension received." \
292 -c "bytes of early data written" \
293 -C "0 bytes of early data written" \
294 -s "Protocol is TLSv1.3" \
295 -s "key exchange mode: psk" \
296 -s "Select PSK ciphersuite: 1302 - TLS1-3-AES-256-GCM-SHA384" \
297 -s "Sent max_early_data_size" \
298 -s "NewSessionTicket: early_data(42) extension exists." \
299 -s "ClientHello: early_data(42) extension exists." \
300 -s "EncryptedExtensions: early_data(42) extension exists." \
301 -s "early data bytes read"
302
Gilles Peskine365296a2024-09-13 14:15:46 +0200303requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
304requires_config_enabled MBEDTLS_SSL_CLI_C
305requires_config_enabled MBEDTLS_SSL_SRV_C
306requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
307requires_config_enabled MBEDTLS_HAVE_TIME
308requires_config_enabled MBEDTLS_SSL_EARLY_DATA
309requires_config_enabled MBEDTLS_DEBUG_C
310requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100311requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
312 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
313run_test "TLS 1.3 m->m: resumption, early data cli-enabled/srv-default" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100314 "$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 +0200315 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100316 0 \
317 -c "Protocol is TLSv1.3" \
318 -c "Saving session for reuse... ok" \
319 -c "Reconnecting with saved session" \
320 -c "HTTP/1.0 200 OK" \
321 -C "received max_early_data_size" \
322 -C "NewSessionTicket: early_data(42) extension received." \
323 -C "ClientHello: early_data(42) extension exists." \
324 -C "EncryptedExtensions: early_data(42) extension received." \
325 -c "0 bytes of early data written" \
326 -s "Protocol is TLSv1.3" \
327 -s "key exchange mode: psk" \
328 -s "Select PSK ciphersuite" \
329 -S "Sent max_early_data_size" \
330 -S "NewSessionTicket: early_data(42) extension exists." \
331 -S "ClientHello: early_data(42) extension exists." \
332 -S "EncryptedExtensions: early_data(42) extension exists." \
333 -S "early data bytes read"
334
Gilles Peskine365296a2024-09-13 14:15:46 +0200335requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
336requires_config_enabled MBEDTLS_SSL_CLI_C
337requires_config_enabled MBEDTLS_SSL_SRV_C
338requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
339requires_config_enabled MBEDTLS_HAVE_TIME
340requires_config_enabled MBEDTLS_SSL_EARLY_DATA
341requires_config_enabled MBEDTLS_DEBUG_C
342requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100343requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
344 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
345run_test "TLS 1.3 m->m: resumption, early data cli-enabled/srv-disabled" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100346 "$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 +0200347 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100348 0 \
349 -c "Protocol is TLSv1.3" \
350 -c "Saving session for reuse... ok" \
351 -c "Reconnecting with saved session" \
352 -c "HTTP/1.0 200 OK" \
353 -C "received max_early_data_size" \
354 -C "NewSessionTicket: early_data(42) extension received." \
355 -C "ClientHello: early_data(42) extension exists." \
356 -C "EncryptedExtensions: early_data(42) extension received." \
357 -c "0 bytes of early data written" \
358 -s "Protocol is TLSv1.3" \
359 -s "key exchange mode: psk" \
360 -s "Select PSK ciphersuite" \
361 -S "Sent max_early_data_size" \
362 -S "NewSessionTicket: early_data(42) extension exists." \
363 -S "ClientHello: early_data(42) extension exists." \
364 -S "EncryptedExtensions: early_data(42) extension exists." \
365 -S "early data bytes read"
366
Gilles Peskine365296a2024-09-13 14:15:46 +0200367requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
368requires_config_enabled MBEDTLS_SSL_CLI_C
369requires_config_enabled MBEDTLS_SSL_SRV_C
370requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
371requires_config_enabled MBEDTLS_HAVE_TIME
372requires_config_enabled MBEDTLS_SSL_EARLY_DATA
373requires_config_enabled MBEDTLS_DEBUG_C
374requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100375requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
376 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
377run_test "TLS 1.3 m->m: resumption, early data cli-default/srv-enabled" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100378 "$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 +0200379 "$P_CLI debug_level=3 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100380 0 \
381 -c "Protocol is TLSv1.3" \
382 -c "Saving session for reuse... ok" \
383 -c "Reconnecting with saved session" \
384 -c "HTTP/1.0 200 OK" \
385 -c "received max_early_data_size" \
386 -c "NewSessionTicket: early_data(42) extension received." \
387 -C "ClientHello: early_data(42) extension exists." \
388 -C "EncryptedExtensions: early_data(42) extension received." \
389 -C "bytes of early data written" \
390 -s "Protocol is TLSv1.3" \
391 -s "key exchange mode: psk" \
392 -s "Select PSK ciphersuite" \
393 -s "Sent max_early_data_size" \
394 -s "NewSessionTicket: early_data(42) extension exists." \
395 -S "ClientHello: early_data(42) extension exists." \
396 -S "EncryptedExtensions: early_data(42) extension exists." \
397 -S "early data bytes read"
398
Gilles Peskine365296a2024-09-13 14:15:46 +0200399requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
400requires_config_enabled MBEDTLS_SSL_CLI_C
401requires_config_enabled MBEDTLS_SSL_SRV_C
402requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
403requires_config_enabled MBEDTLS_HAVE_TIME
404requires_config_enabled MBEDTLS_SSL_EARLY_DATA
405requires_config_enabled MBEDTLS_DEBUG_C
406requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100407requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
408 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
409run_test "TLS 1.3 m->m: resumption, early data cli-disabled/srv-enabled" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100410 "$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 +0200411 "$P_CLI debug_level=3 early_data=0 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crondd2dc152024-03-15 10:08:32 +0100412 0 \
413 -c "Protocol is TLSv1.3" \
414 -c "Saving session for reuse... ok" \
415 -c "Reconnecting with saved session" \
416 -c "HTTP/1.0 200 OK" \
417 -c "received max_early_data_size" \
418 -c "NewSessionTicket: early_data(42) extension received." \
419 -C "ClientHello: early_data(42) extension exists." \
420 -C "EncryptedExtensions: early_data(42) extension received." \
421 -C "bytes of early data written" \
422 -s "Protocol is TLSv1.3" \
423 -s "key exchange mode: psk" \
424 -s "Select PSK ciphersuite" \
425 -s "Sent max_early_data_size" \
426 -s "NewSessionTicket: early_data(42) extension exists." \
427 -S "ClientHello: early_data(42) extension exists." \
428 -S "EncryptedExtensions: early_data(42) extension exists." \
429 -S "early data bytes read"
430
Gilles Peskine365296a2024-09-13 14:15:46 +0200431requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
432requires_config_enabled MBEDTLS_SSL_CLI_C
433requires_config_enabled MBEDTLS_SSL_SRV_C
434requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
435requires_config_enabled MBEDTLS_HAVE_TIME
436requires_config_enabled MBEDTLS_DEBUG_C
437requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crondd2dc152024-03-15 10:08:32 +0100438requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
439 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100440run_test "TLS 1.3 m->m: resumption fails, ticket lifetime too long (7d + 1s)" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100441 "$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 +0200442 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100443 1 \
444 -c "Protocol is TLSv1.3" \
445 -C "Saving session for reuse... ok" \
446 -c "Reconnecting with saved session... failed" \
447 -S "Protocol is TLSv1.3" \
448 -S "key exchange mode: psk" \
449 -S "Select PSK ciphersuite" \
450 -s "Ticket lifetime (604801) is greater than 7 days."
451
Gilles Peskine365296a2024-09-13 14:15:46 +0200452requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
453requires_config_enabled MBEDTLS_SSL_CLI_C
454requires_config_enabled MBEDTLS_SSL_SRV_C
455requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
456requires_config_enabled MBEDTLS_HAVE_TIME
457requires_config_enabled MBEDTLS_DEBUG_C
458requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100459requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
460 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
461run_test "TLS 1.3 m->m: resumption fails, ticket lifetime=0" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100462 "$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 +0200463 "$P_CLI debug_level=2 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100464 1 \
465 -c "Protocol is TLSv1.3" \
466 -C "Saving session for reuse... ok" \
467 -c "Discard new session ticket" \
468 -c "Reconnecting with saved session... failed" \
469 -s "Protocol is TLSv1.3" \
470 -S "key exchange mode: psk" \
471 -S "Select PSK ciphersuite"
472
Gilles Peskine365296a2024-09-13 14:15:46 +0200473requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
474requires_config_enabled MBEDTLS_SSL_CLI_C
475requires_config_enabled MBEDTLS_SSL_SRV_C
476requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
477requires_config_enabled MBEDTLS_HAVE_TIME
478requires_config_enabled MBEDTLS_DEBUG_C
479requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100480requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
481 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
482run_test "TLS 1.3 m->m: resumption fails, servername check failed" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100483 "$P_SRV debug_level=2 crt_file=../framework/data_files/server5.crt key_file=../framework/data_files/server5.key \
484 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 +0200485 "$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 +0100486 1 \
487 -c "Protocol is TLSv1.3" \
488 -c "Saving session for reuse... ok" \
489 -c "Reconnecting with saved session" \
490 -c "Hostname mismatch the session ticket, disable session resumption." \
491 -s "Protocol is TLSv1.3" \
492 -S "key exchange mode: psk" \
493 -S "Select PSK ciphersuite"
494
Gilles Peskine365296a2024-09-13 14:15:46 +0200495requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
496requires_config_enabled MBEDTLS_SSL_CLI_C
497requires_config_enabled MBEDTLS_SSL_SRV_C
498requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
499requires_config_enabled MBEDTLS_HAVE_TIME
500requires_config_enabled MBEDTLS_DEBUG_C
501requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100502requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
503 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
504run_test "TLS 1.3 m->m: resumption fails, ticket auth failed." \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100505 "$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 +0200506 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100507 0 \
508 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800509 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100510 -s "Protocol is TLSv1.3" \
511 -c "Saving session for reuse... ok" \
512 -c "Reconnecting with saved session" \
513 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800514 -s "ticket is not authentic" \
515 -S "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800516 -S "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800517 -S "Ticket age exceeds limitation" \
518 -S "Ticket age outside tolerance window"
519
Gilles Peskine365296a2024-09-13 14:15:46 +0200520requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
521requires_config_enabled MBEDTLS_SSL_CLI_C
522requires_config_enabled MBEDTLS_SSL_SRV_C
523requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
524requires_config_enabled MBEDTLS_HAVE_TIME
525requires_config_enabled MBEDTLS_DEBUG_C
526requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100527requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf5b47062022-12-15 13:46:23 +0100528 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100529run_test "TLS 1.3 m->m: resumption fails, ticket expired." \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100530 "$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 +0200531 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800532 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100533 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800534 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100535 -s "Protocol is TLSv1.3" \
536 -c "Saving session for reuse... ok" \
537 -c "Reconnecting with saved session" \
538 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800539 -S "ticket is not authentic" \
540 -s "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800541 -S "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800542 -S "Ticket age exceeds limitation" \
543 -S "Ticket age outside tolerance window"
544
Gilles Peskine365296a2024-09-13 14:15:46 +0200545requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
546requires_config_enabled MBEDTLS_SSL_CLI_C
547requires_config_enabled MBEDTLS_SSL_SRV_C
548requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
549requires_config_enabled MBEDTLS_HAVE_TIME
550requires_config_enabled MBEDTLS_DEBUG_C
551requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100552requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf5b47062022-12-15 13:46:23 +0100553 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100554run_test "TLS 1.3 m->m: resumption fails, invalid creation time." \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100555 "$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 +0200556 "$P_CLI debug_level=4 new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800557 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100558 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800559 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100560 -s "Protocol is TLSv1.3" \
561 -c "Saving session for reuse... ok" \
562 -c "Reconnecting with saved session" \
563 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800564 -S "ticket is not authentic" \
565 -S "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800566 -s "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800567 -S "Ticket age exceeds limitation" \
568 -S "Ticket age outside tolerance window"
569
Gilles Peskine365296a2024-09-13 14:15:46 +0200570requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
571requires_config_enabled MBEDTLS_SSL_CLI_C
572requires_config_enabled MBEDTLS_SSL_SRV_C
573requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
574requires_config_enabled MBEDTLS_HAVE_TIME
575requires_config_enabled MBEDTLS_DEBUG_C
576requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100577requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf5b47062022-12-15 13:46:23 +0100578 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100579run_test "TLS 1.3 m->m: resumption fails, ticket expired, too old" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100580 "$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 +0200581 "$P_CLI debug_level=4 new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800582 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100583 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800584 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100585 -s "Protocol is TLSv1.3" \
586 -c "Saving session for reuse... ok" \
587 -c "Reconnecting with saved session" \
588 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800589 -S "ticket is not authentic" \
590 -S "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800591 -S "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800592 -s "Ticket age exceeds limitation" \
593 -S "Ticket age outside tolerance window"
594
Gilles Peskine365296a2024-09-13 14:15:46 +0200595requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
596requires_config_enabled MBEDTLS_SSL_CLI_C
597requires_config_enabled MBEDTLS_SSL_SRV_C
598requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
599requires_config_enabled MBEDTLS_HAVE_TIME
600requires_config_enabled MBEDTLS_DEBUG_C
601requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100602requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf5b47062022-12-15 13:46:23 +0100603 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100604run_test "TLS 1.3 m->m: resumption fails, age outside tolerance window, too young" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100605 "$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 +0200606 "$P_CLI debug_level=4 new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800607 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100608 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800609 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100610 -s "Protocol is TLSv1.3" \
611 -c "Saving session for reuse... ok" \
612 -c "Reconnecting with saved session" \
613 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800614 -S "ticket is not authentic" \
615 -S "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800616 -S "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800617 -S "Ticket age exceeds limitation" \
618 -s "Ticket age outside tolerance window"
619
Gilles Peskine365296a2024-09-13 14:15:46 +0200620requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
621requires_config_enabled MBEDTLS_SSL_CLI_C
622requires_config_enabled MBEDTLS_SSL_SRV_C
623requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
624requires_config_enabled MBEDTLS_HAVE_TIME
625requires_config_enabled MBEDTLS_DEBUG_C
626requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100627requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf5b47062022-12-15 13:46:23 +0100628 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100629run_test "TLS 1.3 m->m: resumption fails, age outside tolerance window, too old" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100630 "$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 +0200631 "$P_CLI debug_level=4 new_session_tickets=1 reco_mode=1 reconnect=1" \
Jerry Yu616ba752022-11-08 21:49:47 +0800632 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100633 -c "Protocol is TLSv1.3" \
Jerry Yu616ba752022-11-08 21:49:47 +0800634 -s "key exchange mode: ephemeral" \
Ronald Crone7398922024-03-10 12:11:02 +0100635 -s "Protocol is TLSv1.3" \
636 -c "Saving session for reuse... ok" \
637 -c "Reconnecting with saved session" \
638 -S "key exchange mode: psk" \
Jerry Yu616ba752022-11-08 21:49:47 +0800639 -S "ticket is not authentic" \
640 -S "ticket is expired" \
Jerry Yu60e99722023-11-20 09:55:24 +0800641 -S "Invalid ticket creation time" \
Jerry Yu616ba752022-11-08 21:49:47 +0800642 -S "Ticket age exceeds limitation" \
643 -s "Ticket age outside tolerance window"
644
Gilles Peskine365296a2024-09-13 14:15:46 +0200645requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
646requires_config_enabled MBEDTLS_SSL_CLI_C
647requires_config_enabled MBEDTLS_SSL_SRV_C
648requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
649requires_config_enabled MBEDTLS_HAVE_TIME
650requires_config_enabled MBEDTLS_DEBUG_C
651requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
652requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100653run_test "TLS 1.3 m->m: resumption fails, cli/tkt kex modes psk/none" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100654 "$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 +0200655 "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100656 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100657 -c "Protocol is TLSv1.3" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100658 -s "key exchange mode: ephemeral" \
659 -S "key exchange mode: psk_ephemeral" \
660 -S "key exchange mode: psk$" \
Ronald Crone7398922024-03-10 12:11:02 +0100661 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100662 -s "No suitable PSK key exchange mode" \
663 -s "No usable PSK or ticket"
Jerry Yue5991322022-11-07 14:03:44 +0800664
Gilles Peskine365296a2024-09-13 14:15:46 +0200665requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
666requires_config_enabled MBEDTLS_SSL_CLI_C
667requires_config_enabled MBEDTLS_SSL_SRV_C
668requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
669requires_config_enabled MBEDTLS_HAVE_TIME
670requires_config_enabled MBEDTLS_DEBUG_C
671requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
672requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100673run_test "TLS 1.3 m->m: ephemeral over psk resumption, cli/tkt kex modes psk/psk" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100674 "$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 +0200675 "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100676 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100677 -c "Protocol is TLSv1.3" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100678 -s "key exchange mode: ephemeral" \
679 -S "key exchange mode: psk_ephemeral" \
680 -S "key exchange mode: psk$" \
Ronald Crone7398922024-03-10 12:11:02 +0100681 -s "found matched identity" \
682 -S "No suitable PSK key exchange mode" \
683 -S "No usable PSK or ticket"
684
Gilles Peskine365296a2024-09-13 14:15:46 +0200685requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
686requires_config_enabled MBEDTLS_SSL_CLI_C
687requires_config_enabled MBEDTLS_SSL_SRV_C
688requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
689requires_config_enabled MBEDTLS_HAVE_TIME
690requires_config_enabled MBEDTLS_DEBUG_C
691requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
692requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100693run_test "TLS 1.3 m->m: resumption fails, cli/tkt kex modes psk/psk_ephemeral" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100694 "$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 +0200695 "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral new_session_tickets=1 reconnect=1" \
Ronald Crone7398922024-03-10 12:11:02 +0100696 0 \
697 -c "Protocol is TLSv1.3" \
698 -s "key exchange mode: ephemeral" \
699 -S "key exchange mode: psk_ephemeral" \
700 -S "key exchange mode: psk$" \
701 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100702 -s "No suitable PSK key exchange mode" \
703 -s "No usable PSK or ticket"
704
Gilles Peskine365296a2024-09-13 14:15:46 +0200705requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
706requires_config_enabled MBEDTLS_SSL_CLI_C
707requires_config_enabled MBEDTLS_SSL_SRV_C
708requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
709requires_config_enabled MBEDTLS_HAVE_TIME
710requires_config_enabled MBEDTLS_DEBUG_C
711requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
712requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100713run_test "TLS 1.3 m->m: ephemeral over psk resumption, cli/tkt kex modes psk/psk_all" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100714 "$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 +0200715 "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100716 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100717 -c "Protocol is TLSv1.3" \
718 -s "key exchange mode: ephemeral" \
719 -S "key exchange mode: psk_ephemeral" \
720 -S "key exchange mode: psk$" \
721 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100722 -S "No suitable PSK key exchange mode" \
Ronald Crone7398922024-03-10 12:11:02 +0100723 -S "No usable PSK or ticket"
Ronald Cron3cf41452024-03-10 10:44:14 +0100724
Gilles Peskine365296a2024-09-13 14:15:46 +0200725requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
726requires_config_enabled MBEDTLS_SSL_CLI_C
727requires_config_enabled MBEDTLS_SSL_SRV_C
728requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
729requires_config_enabled MBEDTLS_HAVE_TIME
730requires_config_enabled MBEDTLS_DEBUG_C
731requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
732requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100733run_test "TLS 1.3 m->m: resumption fails, cli/tkt kex modes psk_ephemeral/none" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100734 "$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 +0200735 "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100736 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100737 -c "Protocol is TLSv1.3" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100738 -s "key exchange mode: ephemeral" \
739 -S "key exchange mode: psk_ephemeral" \
740 -S "key exchange mode: psk$" \
Ronald Crone7398922024-03-10 12:11:02 +0100741 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100742 -s "No suitable PSK key exchange mode" \
743 -s "No usable PSK or ticket"
Jerry Yue5991322022-11-07 14:03:44 +0800744
Gilles Peskine365296a2024-09-13 14:15:46 +0200745requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
746requires_config_enabled MBEDTLS_SSL_CLI_C
747requires_config_enabled MBEDTLS_SSL_SRV_C
748requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
749requires_config_enabled MBEDTLS_HAVE_TIME
750requires_config_enabled MBEDTLS_DEBUG_C
751requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
752requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100753run_test "TLS 1.3 m->m: resumption fails, cli/tkt kex modes psk_ephemeral/psk" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100754 "$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 +0200755 "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100756 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100757 -c "Protocol is TLSv1.3" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100758 -s "key exchange mode: ephemeral" \
759 -S "key exchange mode: psk_ephemeral" \
760 -S "key exchange mode: psk$" \
Ronald Crone7398922024-03-10 12:11:02 +0100761 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100762 -s "No suitable PSK key exchange mode" \
763 -s "No usable PSK or ticket"
764
Gilles Peskine365296a2024-09-13 14:15:46 +0200765requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
766requires_config_enabled MBEDTLS_SSL_CLI_C
767requires_config_enabled MBEDTLS_SSL_SRV_C
768requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
769requires_config_enabled MBEDTLS_HAVE_TIME
770requires_config_enabled MBEDTLS_DEBUG_C
771requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
772requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100773run_test "TLS 1.3 m->m: resumption, cli/tkt kex modes psk_ephemeral/psk_ephemeral" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100774 "$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 +0200775 "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100776 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100777 -c "Protocol is TLSv1.3" \
778 -s "key exchange mode: ephemeral" \
779 -s "key exchange mode: psk_ephemeral" \
780 -S "key exchange mode: psk$" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100781 -s "found matched identity" \
Ronald Crone7398922024-03-10 12:11:02 +0100782 -S "No suitable PSK key exchange mode" \
783 -S "No usable PSK or ticket"
Ronald Cron3cf41452024-03-10 10:44:14 +0100784
Gilles Peskine365296a2024-09-13 14:15:46 +0200785requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
786requires_config_enabled MBEDTLS_SSL_CLI_C
787requires_config_enabled MBEDTLS_SSL_SRV_C
788requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
789requires_config_enabled MBEDTLS_HAVE_TIME
790requires_config_enabled MBEDTLS_DEBUG_C
791requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
792requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100793run_test "TLS 1.3 m->m: resumption, cli/tkt kex modes psk_ephemeral/psk_all" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100794 "$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 +0200795 "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100796 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100797 -c "Protocol is TLSv1.3" \
798 -s "key exchange mode: ephemeral" \
799 -s "key exchange mode: psk_ephemeral" \
800 -S "key exchange mode: psk$" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100801 -s "found matched identity" \
Ronald Crone7398922024-03-10 12:11:02 +0100802 -S "No suitable PSK key exchange mode" \
803 -S "No usable PSK or ticket"
Ronald Cron3cf41452024-03-10 10:44:14 +0100804
Gilles Peskine365296a2024-09-13 14:15:46 +0200805requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
806requires_config_enabled MBEDTLS_SSL_CLI_C
807requires_config_enabled MBEDTLS_SSL_SRV_C
808requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
809requires_config_enabled MBEDTLS_HAVE_TIME
810requires_config_enabled MBEDTLS_DEBUG_C
811requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
812requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
813requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100814run_test "TLS 1.3 m->m: resumption fails, cli/tkt kex modes psk_all/none" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100815 "$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 +0200816 "$P_CLI debug_level=4 tls13_kex_modes=all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100817 0 \
818 -c "Pre-configured PSK number = 1" \
819 -S "sent selected_identity:" \
820 -s "key exchange mode: ephemeral" \
821 -S "key exchange mode: psk_ephemeral" \
822 -S "key exchange mode: psk$" \
823 -s "No suitable PSK key exchange mode" \
824 -s "No usable PSK or ticket"
825
Gilles Peskine365296a2024-09-13 14:15:46 +0200826requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
827requires_config_enabled MBEDTLS_SSL_CLI_C
828requires_config_enabled MBEDTLS_SSL_SRV_C
829requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
830requires_config_enabled MBEDTLS_HAVE_TIME
831requires_config_enabled MBEDTLS_DEBUG_C
832requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
833requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
834requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100835run_test "TLS 1.3 m->m: ephemeral over psk resumption, cli/tkt kex modes psk_all/psk" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100836 "$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 +0200837 "$P_CLI debug_level=4 tls13_kex_modes=all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100838 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100839 -c "Protocol is TLSv1.3" \
840 -s "key exchange mode: ephemeral" \
841 -S "key exchange mode: psk_ephemeral" \
842 -S "key exchange mode: psk$" \
843 -s "found matched identity" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100844 -S "No suitable PSK key exchange mode" \
Ronald Crone7398922024-03-10 12:11:02 +0100845 -S "No usable PSK or ticket"
Ronald Cron3cf41452024-03-10 10:44:14 +0100846
Gilles Peskine365296a2024-09-13 14:15:46 +0200847requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
848requires_config_enabled MBEDTLS_SSL_CLI_C
849requires_config_enabled MBEDTLS_SSL_SRV_C
850requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
851requires_config_enabled MBEDTLS_HAVE_TIME
852requires_config_enabled MBEDTLS_DEBUG_C
853requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
854requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
855requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100856run_test "TLS 1.3 m->m: resumption, cli/tkt kex modes psk_all/psk_ephemeral" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100857 "$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 +0200858 "$P_CLI debug_level=4 tls13_kex_modes=all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100859 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100860 -c "Protocol is TLSv1.3" \
861 -s "key exchange mode: ephemeral" \
862 -s "key exchange mode: psk_ephemeral" \
863 -S "key exchange mode: psk$" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100864 -s "found matched identity" \
Ronald Crone7398922024-03-10 12:11:02 +0100865 -S "No suitable PSK key exchange mode" \
866 -S "No usable PSK or ticket"
Ronald Cron3cf41452024-03-10 10:44:14 +0100867
Gilles Peskine365296a2024-09-13 14:15:46 +0200868requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
869requires_config_enabled MBEDTLS_SSL_CLI_C
870requires_config_enabled MBEDTLS_SSL_SRV_C
871requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
872requires_config_enabled MBEDTLS_HAVE_TIME
873requires_config_enabled MBEDTLS_DEBUG_C
874requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
875requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
876requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crone7398922024-03-10 12:11:02 +0100877run_test "TLS 1.3 m->m: resumption, cli/tkt kex modes psk_all/psk_all" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +0100878 "$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 +0200879 "$P_CLI debug_level=4 tls13_kex_modes=all new_session_tickets=1 reconnect=1" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100880 0 \
Ronald Crone7398922024-03-10 12:11:02 +0100881 -c "Protocol is TLSv1.3" \
882 -s "key exchange mode: ephemeral" \
883 -s "key exchange mode: psk_ephemeral" \
884 -S "key exchange mode: psk$" \
Ronald Cron3cf41452024-03-10 10:44:14 +0100885 -s "found matched identity" \
Ronald Crone7398922024-03-10 12:11:02 +0100886 -S "No suitable PSK key exchange mode" \
887 -S "No usable PSK or ticket"
Jerry Yue5991322022-11-07 14:03:44 +0800888
Ronald Cronf1ad73f2024-03-05 08:38:49 +0100889requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +0200890requires_config_enabled MBEDTLS_SSL_CLI_C
891requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
892requires_config_enabled MBEDTLS_HAVE_TIME
Gilles Peskine365296a2024-09-13 14:15:46 +0200893requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron00fa13b2024-03-05 17:45:44 +0100894requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
895 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
896run_test "TLS 1.3 m->O: resumption" \
897 "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 1" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200898 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +0100899 0 \
900 -c "Protocol is TLSv1.3" \
Ronald Cron00fa13b2024-03-05 17:45:44 +0100901 -c "Saving session for reuse... ok" \
902 -c "Reconnecting with saved session... ok" \
903 -c "HTTP/1.0 200 ok"
904
Ronald Cron54a9b112024-03-26 11:17:10 +0100905requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +0200906requires_config_enabled MBEDTLS_SSL_CLI_C
Gilles Peskine365296a2024-09-13 14:15:46 +0200907requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron54a9b112024-03-26 11:17:10 +0100908requires_config_disabled MBEDTLS_SSL_SESSION_TICKETS
909run_test "TLS 1.3 m->O: resumption fails, no ticket support" \
910 "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 1" \
911 "$P_CLI debug_level=3 reco_mode=1 reconnect=1" \
912 1 \
913 -c "Protocol is TLSv1.3" \
914 -C "Saving session for reuse... ok" \
915 -C "Reconnecting with saved session... ok" \
Ronald Cron97dc5832024-08-28 09:34:34 +0200916 -c "Ignoring NewSessionTicket, not supported."
Ronald Cron54a9b112024-03-26 11:17:10 +0100917
Ronald Cron57ad1822024-08-27 19:38:41 +0200918requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +0200919requires_config_enabled MBEDTLS_SSL_CLI_C
920requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
Gilles Peskine365296a2024-09-13 14:15:46 +0200921requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200922run_test "TLS 1.3 m->O: resumption fails, ticket handling disabled (explicit)" \
Ronald Cron57ad1822024-08-27 19:38:41 +0200923 "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 1" \
924 "$P_CLI debug_level=3 new_session_tickets=0 reco_mode=1 reconnect=1" \
925 1 \
926 -c "Protocol is TLSv1.3" \
927 -C "Saving session for reuse... ok" \
928 -C "Reconnecting with saved session... ok" \
Ronald Cron97dc5832024-08-28 09:34:34 +0200929 -c "Ignoring NewSessionTicket, handling disabled."
Ronald Cron57ad1822024-08-27 19:38:41 +0200930
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200931requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +0200932requires_config_enabled MBEDTLS_SSL_CLI_C
933requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
Gilles Peskine365296a2024-09-13 14:15:46 +0200934requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200935run_test "TLS 1.3 m->O: resumption fails, ticket handling disabled (default)" \
936 "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 1" \
937 "$P_CLI debug_level=3 reco_mode=1 reconnect=1" \
938 1 \
939 -c "Protocol is TLSv1.3" \
940 -C "Saving session for reuse... ok" \
941 -C "Reconnecting with saved session... ok" \
942 -c "Ignoring NewSessionTicket, handling disabled."
943
Ronald Cron00fa13b2024-03-05 17:45:44 +0100944# No early data m->O tests for the time being. The option -early_data is needed
945# to enable early data on OpenSSL server and it is not compatible with the
946# -www option we usually use for testing with OpenSSL server (see
947# O_NEXT_SRV_EARLY_DATA definition). In this configuration when running the
948# ephemeral then ticket based scenario we use for early data testing the first
949# handshake fails. The following skipped test is here to illustrate the kind
950# of testing we would like to do.
951skip_next_test
952requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +0200953requires_config_enabled MBEDTLS_SSL_CLI_C
954requires_config_enabled MBEDTLS_DEBUG_C
955requires_config_enabled MBEDTLS_SSL_EARLY_DATA
Gilles Peskine365296a2024-09-13 14:15:46 +0200956requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron00fa13b2024-03-05 17:45:44 +0100957requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
958 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
959run_test "TLS 1.3 m->O: resumption with early data" \
960 "$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 +0200961 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron00fa13b2024-03-05 17:45:44 +0100962 0 \
963 -c "Protocol is TLSv1.3" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +0100964 -c "Saving session for reuse... ok" \
965 -c "Reconnecting with saved session" \
Ronald Cron00fa13b2024-03-05 17:45:44 +0100966 -c "HTTP/1.0 200 OK" \
967 -c "received max_early_data_size: 16384" \
968 -c "NewSessionTicket: early_data(42) extension received." \
969 -c "ClientHello: early_data(42) extension exists." \
970 -c "EncryptedExtensions: early_data(42) extension received." \
971 -c "bytes of early data written" \
972 -s "decrypted early data with length:"
Ronald Cronf1ad73f2024-03-05 08:38:49 +0100973
974requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200975requires_config_enabled MBEDTLS_SSL_CLI_C
976requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
977requires_config_enabled MBEDTLS_HAVE_TIME
Gilles Peskine365296a2024-09-13 14:15:46 +0200978requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +0100979requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
980 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
981run_test "TLS 1.3 m->G: resumption" \
982 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +0200983 "$P_CLI new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +0100984 0 \
985 -c "Protocol is TLSv1.3" \
Ronald Cron05210082024-03-05 16:34:51 +0100986 -c "Saving session for reuse... ok" \
987 -c "Reconnecting with saved session... ok" \
988 -c "HTTP/1.0 200 OK"
989
990requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200991requires_config_enabled MBEDTLS_SSL_CLI_C
Gilles Peskine365296a2024-09-13 14:15:46 +0200992requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron54a9b112024-03-26 11:17:10 +0100993requires_config_disabled MBEDTLS_SSL_SESSION_TICKETS
994run_test "TLS 1.3 m->G: resumption fails, no ticket support" \
995 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \
996 "$P_CLI debug_level=3 reco_mode=1 reconnect=1" \
997 1 \
998 -c "Protocol is TLSv1.3" \
999 -C "Saving session for reuse... ok" \
1000 -C "Reconnecting with saved session... ok" \
Ronald Cron97dc5832024-08-28 09:34:34 +02001001 -c "Ignoring NewSessionTicket, not supported."
Ronald Cron54a9b112024-03-26 11:17:10 +01001002
1003requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001004requires_config_enabled MBEDTLS_SSL_CLI_C
1005requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
Gilles Peskine365296a2024-09-13 14:15:46 +02001006requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001007run_test "TLS 1.3 m->G: resumption fails, ticket handling disabled (explicit)" \
Ronald Cron57ad1822024-08-27 19:38:41 +02001008 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \
1009 "$P_CLI debug_level=3 new_session_tickets=0 reco_mode=1 reconnect=1" \
1010 1 \
1011 -c "Protocol is TLSv1.3" \
1012 -C "Saving session for reuse... ok" \
1013 -C "Reconnecting with saved session... ok" \
Ronald Cron97dc5832024-08-28 09:34:34 +02001014 -c "Ignoring NewSessionTicket, handling disabled."
Ronald Cron57ad1822024-08-27 19:38:41 +02001015
1016requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001017requires_config_enabled MBEDTLS_SSL_CLI_C
1018requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
Gilles Peskine365296a2024-09-13 14:15:46 +02001019requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001020run_test "TLS 1.3 m->G: resumption fails, ticket handling disabled (default)" \
1021 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \
1022 "$P_CLI debug_level=3 reco_mode=1 reconnect=1" \
1023 1 \
1024 -c "Protocol is TLSv1.3" \
1025 -C "Saving session for reuse... ok" \
1026 -C "Reconnecting with saved session... ok" \
1027 -c "Ignoring NewSessionTicket, handling disabled."
1028
1029requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001030requires_config_enabled MBEDTLS_SSL_CLI_C
1031requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1032requires_config_enabled MBEDTLS_HAVE_TIME
Gilles Peskine365296a2024-09-13 14:15:46 +02001033requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001034requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1035 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1036requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
1037run_test "TLS 1.3 m->G: resumption with AES-256-GCM-SHA384 only" \
1038 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001039 "$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 +01001040 0 \
1041 -c "Protocol is TLSv1.3" \
1042 -c "Ciphersuite is TLS1-3-AES-256-GCM-SHA384" \
1043 -c "Saving session for reuse... ok" \
1044 -c "Reconnecting with saved session... ok" \
1045 -c "HTTP/1.0 200 OK"
1046
1047requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001048requires_config_enabled MBEDTLS_SSL_CLI_C
1049requires_config_enabled MBEDTLS_DEBUG_C
1050requires_config_enabled MBEDTLS_SSL_EARLY_DATA
Gilles Peskine365296a2024-09-13 14:15:46 +02001051requires_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
1054run_test "TLS 1.3 m->G: resumption with early data" \
1055 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert \
1056 --earlydata --maxearlydata 16384" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001057 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron05210082024-03-05 16:34:51 +01001058 0 \
1059 -c "Protocol is TLSv1.3" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001060 -c "Saving session for reuse... ok" \
1061 -c "Reconnecting with saved session" \
1062 -c "HTTP/1.0 200 OK" \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001063 -c "received max_early_data_size: 16384" \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001064 -c "NewSessionTicket: early_data(42) extension received." \
1065 -c "ClientHello: early_data(42) extension exists." \
1066 -c "EncryptedExtensions: early_data(42) extension received." \
Ronald Cron05210082024-03-05 16:34:51 +01001067 -c "bytes of early data written" \
1068 -s "decrypted early data with length:"
Ronald Cronc8d604d2024-03-05 15:05:47 +01001069
1070requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001071requires_config_enabled MBEDTLS_SSL_CLI_C
1072requires_config_enabled MBEDTLS_DEBUG_C
1073requires_config_enabled MBEDTLS_SSL_EARLY_DATA
Gilles Peskine365296a2024-09-13 14:15:46 +02001074requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cronc8d604d2024-03-05 15:05:47 +01001075requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1076 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001077requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
1078run_test "TLS 1.3 m->G: resumption with early data, AES-256-GCM-SHA384 only" \
1079 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert \
1080 --earlydata --maxearlydata 16384" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001081 "$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 +01001082 0 \
Ronald Cron05210082024-03-05 16:34:51 +01001083 -c "Protocol is TLSv1.3" \
1084 -c "Ciphersuite is TLS1-3-AES-256-GCM-SHA384" \
1085 -c "Saving session for reuse... ok" \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001086 -c "Reconnecting with saved session" \
Ronald Cron05210082024-03-05 16:34:51 +01001087 -c "HTTP/1.0 200 OK" \
1088 -c "received max_early_data_size: 16384" \
1089 -c "NewSessionTicket: early_data(42) extension received." \
1090 -c "ClientHello: early_data(42) extension exists." \
1091 -c "EncryptedExtensions: early_data(42) extension received." \
1092 -c "bytes of early data written" \
1093 -s "decrypted early data with length:"
1094
1095requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001096requires_config_enabled MBEDTLS_SSL_CLI_C
1097requires_config_enabled MBEDTLS_DEBUG_C
1098requires_config_enabled MBEDTLS_SSL_EARLY_DATA
Gilles Peskine365296a2024-09-13 14:15:46 +02001099requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001100requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1101 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1102run_test "TLS 1.3 m->G: resumption, early data cli-enabled/srv-disabled" \
1103 "$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 +02001104 "$P_CLI debug_level=3 early_data=1 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron05210082024-03-05 16:34:51 +01001105 0 \
1106 -c "Protocol is TLSv1.3" \
1107 -c "Saving session for reuse... ok" \
1108 -c "Reconnecting with saved session" \
1109 -c "HTTP/1.0 200 OK" \
1110 -C "received max_early_data_size: 16384" \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001111 -C "NewSessionTicket: early_data(42) extension received." \
Ronald Cron05210082024-03-05 16:34:51 +01001112
1113requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001114requires_config_enabled MBEDTLS_SSL_CLI_C
1115requires_config_enabled MBEDTLS_DEBUG_C
1116requires_config_enabled MBEDTLS_SSL_EARLY_DATA
Gilles Peskine365296a2024-09-13 14:15:46 +02001117requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001118requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1119 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1120run_test "TLS 1.3 m->G: resumption, early data cli-default/srv-enabled" \
1121 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert \
1122 --earlydata --maxearlydata 16384" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001123 "$P_CLI debug_level=3 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron05210082024-03-05 16:34:51 +01001124 0 \
1125 -c "Protocol is TLSv1.3" \
1126 -c "Saving session for reuse... ok" \
1127 -c "Reconnecting with saved session" \
1128 -c "HTTP/1.0 200 OK" \
1129 -c "received max_early_data_size: 16384" \
1130 -c "NewSessionTicket: early_data(42) extension received." \
1131 -C "ClientHello: early_data(42) extension exists." \
1132
1133requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001134requires_config_enabled MBEDTLS_SSL_CLI_C
1135requires_config_enabled MBEDTLS_DEBUG_C
1136requires_config_enabled MBEDTLS_SSL_EARLY_DATA
Gilles Peskine365296a2024-09-13 14:15:46 +02001137requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron05210082024-03-05 16:34:51 +01001138requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \
1139 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1140run_test "TLS 1.3 m->G: resumption, early data cli-disabled/srv-enabled" \
1141 "$G_NEXT_SRV -d 5 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert \
1142 --earlydata --maxearlydata 16384" \
Manuel Pégourié-Gonnardaa80f532024-09-04 10:51:33 +02001143 "$P_CLI debug_level=3 early_data=0 new_session_tickets=1 reco_mode=1 reconnect=1" \
Ronald Cron05210082024-03-05 16:34:51 +01001144 0 \
1145 -c "Protocol is TLSv1.3" \
1146 -c "Saving session for reuse... ok" \
1147 -c "Reconnecting with saved session" \
1148 -c "HTTP/1.0 200 OK" \
1149 -c "received max_early_data_size: 16384" \
1150 -c "NewSessionTicket: early_data(42) extension received." \
1151 -C "ClientHello: early_data(42) extension exists." \
Ronald Cronc8d604d2024-03-05 15:05:47 +01001152
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001153requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001154requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1155requires_config_enabled MBEDTLS_SSL_SRV_C
Gilles Peskine365296a2024-09-13 14:15:46 +02001156requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron820199a2024-03-10 10:39:26 +01001157requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001158 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1159# https://github.com/openssl/openssl/issues/10714
1160# Until now, OpenSSL client does not support reconnect.
1161skip_next_test
Ronald Cron820199a2024-03-10 10:39:26 +01001162run_test "TLS 1.3 O->m: resumption" \
1163 "$P_SRV debug_level=2 tickets=1" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001164 "$O_NEXT_CLI -msg -debug -tls1_3 -reconnect" \
1165 0 \
Ronald Cron820199a2024-03-10 10:39:26 +01001166 -s "Protocol is TLSv1.3" \
1167 -s "key exchange mode: psk" \
1168 -s "Select PSK ciphersuite"
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001169
1170requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001171requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1172requires_config_enabled MBEDTLS_HAVE_TIME
1173requires_config_enabled MBEDTLS_SSL_SRV_C
1174requires_config_enabled MBEDTLS_DEBUG_C
Gilles Peskine365296a2024-09-13 14:15:46 +02001175requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001176requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001177 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001178run_test "TLS 1.3 G->m: resumption" \
1179 "$P_SRV debug_level=2 tickets=1" \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001180 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \
1181 0 \
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001182 -s "Protocol is TLSv1.3" \
1183 -s "key exchange mode: psk" \
1184 -s "Select PSK ciphersuite"
1185
1186requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001187requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1188requires_config_enabled MBEDTLS_HAVE_TIME
1189requires_config_enabled MBEDTLS_SSL_SRV_C
1190requires_config_enabled MBEDTLS_DEBUG_C
Gilles Peskine365296a2024-09-13 14:15:46 +02001191requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001192requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
1193 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1194requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
1195# Test the session resumption when the cipher suite for the original session is
1196# TLS1-3-AES-256-GCM-SHA384. In that case, the PSK is 384 bits long and not
1197# 256 bits long as with all the other TLS 1.3 cipher suites.
1198run_test "TLS 1.3 G->m: resumption with AES-256-GCM-SHA384 only" \
1199 "$P_SRV debug_level=2 tickets=1" \
1200 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM -V -r" \
1201 0 \
1202 -s "Protocol is TLSv1.3" \
1203 -s "key exchange mode: psk" \
1204 -s "Select PSK ciphersuite: 1302 - TLS1-3-AES-256-GCM-SHA384"
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001205
Ronald Cron854df132024-03-05 17:50:50 +01001206EARLY_DATA_INPUT_LEN_BLOCKS=$(( ( $( cat $EARLY_DATA_INPUT | wc -c ) + 31 ) / 32 ))
1207EARLY_DATA_INPUT_LEN=$(( $EARLY_DATA_INPUT_LEN_BLOCKS * 32 ))
1208
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001209requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001210requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1211requires_config_enabled MBEDTLS_HAVE_TIME
1212requires_config_enabled MBEDTLS_SSL_SRV_C
1213requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1214requires_config_enabled MBEDTLS_DEBUG_C
Gilles Peskine365296a2024-09-13 14:15:46 +02001215requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron854df132024-03-05 17:50:50 +01001216requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
1217 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001218run_test "TLS 1.3 G->m: resumption with early data" \
1219 "$P_SRV debug_level=4 tickets=1 early_data=1 max_early_data_size=$EARLY_DATA_INPUT_LEN" \
1220 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r \
1221 --earlydata $EARLY_DATA_INPUT" \
Ronald Cron854df132024-03-05 17:50:50 +01001222 0 \
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001223 -s "Protocol is TLSv1.3" \
1224 -s "key exchange mode: psk" \
1225 -s "Select PSK ciphersuite" \
1226 -s "Sent max_early_data_size=$EARLY_DATA_INPUT_LEN" \
1227 -s "NewSessionTicket: early_data(42) extension exists." \
1228 -s "ClientHello: early_data(42) extension exists." \
1229 -s "EncryptedExtensions: early_data(42) extension exists." \
1230 -s "$( head -1 $EARLY_DATA_INPUT )" \
1231 -s "$( tail -1 $EARLY_DATA_INPUT )" \
1232 -s "200 early data bytes read" \
Ronald Cron854df132024-03-05 17:50:50 +01001233 -s "106 early data bytes read"
1234
Ronald Cronf1ad73f2024-03-05 08:38:49 +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
Gilles Peskine365296a2024-09-13 14:15:46 +02001241requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001242requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001243 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001244requires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001245run_test "TLS 1.3 G->m: resumption with early data, AES-256-GCM-SHA384 only" \
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:-CIPHER-ALL:+AES-256-GCM -V -r \
1248 --earlydata $EARLY_DATA_INPUT" \
1249 0 \
1250 -s "Protocol is TLSv1.3" \
1251 -s "key exchange mode: psk" \
1252 -s "Select PSK ciphersuite: 1302 - TLS1-3-AES-256-GCM-SHA384" \
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" \
1260 -s "106 early data bytes read"
1261
1262# The Mbed TLS server does not allow early data for the ticket it sends but
1263# the GnuTLS indicates early data anyway when resuming with the ticket and
1264# sends early data. The Mbed TLS server does not expect early data in
1265# association with the ticket thus it eventually fails the resumption
1266# handshake. The GnuTLS client behavior is not compliant here with the TLS 1.3
1267# specification and thus its behavior may change in following versions.
1268requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001269requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1270requires_config_enabled MBEDTLS_HAVE_TIME
1271requires_config_enabled MBEDTLS_SSL_SRV_C
1272requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1273requires_config_enabled MBEDTLS_DEBUG_C
Gilles Peskine365296a2024-09-13 14:15:46 +02001274requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001275requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
1276 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1277run_test "TLS 1.3 G->m: resumption, early data cli-enabled/srv-default" \
1278 "$P_SRV debug_level=4 tickets=1" \
1279 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r \
1280 --earlydata $EARLY_DATA_INPUT" \
1281 1 \
1282 -s "Protocol is TLSv1.3" \
1283 -s "key exchange mode: psk" \
1284 -s "Select PSK ciphersuite" \
1285 -S "Sent max_early_data_size" \
1286 -S "NewSessionTicket: early_data(42) extension exists." \
1287 -s "ClientHello: early_data(42) extension exists." \
1288 -s "EarlyData: rejected, feature disabled in server configuration." \
1289 -S "EncryptedExtensions: early_data(42) extension exists." \
1290 -s "EarlyData: deprotect and discard app data records" \
1291 -s "EarlyData: Too much early data received"
1292
1293# The Mbed TLS server does not allow early data for the ticket it sends but
1294# the GnuTLS indicates early data anyway when resuming with the ticket and
1295# sends early data. The Mbed TLS server does not expect early data in
1296# association with the ticket thus it eventually fails the resumption
1297# handshake. The GnuTLS client behavior is not compliant here with the TLS 1.3
1298# specification and thus its behavior may change in following versions.
1299requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001300requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1301requires_config_enabled MBEDTLS_HAVE_TIME
1302requires_config_enabled MBEDTLS_SSL_SRV_C
1303requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1304requires_config_enabled MBEDTLS_DEBUG_C
Gilles Peskine365296a2024-09-13 14:15:46 +02001305requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001306requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
1307 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1308run_test "TLS 1.3 G->m: resumption, early data cli-enabled/srv-disabled" \
1309 "$P_SRV debug_level=4 tickets=1 early_data=0" \
1310 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r \
1311 --earlydata $EARLY_DATA_INPUT" \
1312 1 \
1313 -s "Protocol is TLSv1.3" \
1314 -s "key exchange mode: psk" \
1315 -s "Select PSK ciphersuite" \
1316 -S "Sent max_early_data_size" \
1317 -S "NewSessionTicket: early_data(42) extension exists." \
1318 -s "ClientHello: early_data(42) extension exists." \
1319 -s "EarlyData: rejected, feature disabled in server configuration." \
1320 -S "EncryptedExtensions: early_data(42) extension exists." \
1321 -s "EarlyData: deprotect and discard app data records" \
1322 -s "EarlyData: Too much early data received"
1323
1324requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001325requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1326requires_config_enabled MBEDTLS_HAVE_TIME
1327requires_config_enabled MBEDTLS_SSL_SRV_C
1328requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1329requires_config_enabled MBEDTLS_DEBUG_C
Gilles Peskine365296a2024-09-13 14:15:46 +02001330requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1ccd7a72024-03-05 23:31:07 +01001331requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
1332 MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1333run_test "TLS 1.3 G->m: resumption, early data cli-disabled/srv-enabled" \
1334 "$P_SRV debug_level=4 tickets=1 early_data=1" \
1335 "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \
1336 0 \
1337 -s "Protocol is TLSv1.3" \
1338 -s "key exchange mode: psk" \
1339 -s "Select PSK ciphersuite" \
1340 -s "Sent max_early_data_size" \
1341 -s "NewSessionTicket: early_data(42) extension exists." \
1342 -S "ClientHello: early_data(42) extension exists." \
1343 -S "EncryptedExtensions: early_data(42) extension exists."
Ronald Cronf1ad73f2024-03-05 08:38:49 +01001344
Gilles Peskine365296a2024-09-13 14:15:46 +02001345requires_config_enabled MBEDTLS_SSL_EARLY_DATA
1346requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS
1347requires_config_enabled MBEDTLS_SSL_CLI_C
1348requires_config_enabled MBEDTLS_SSL_SRV_C
1349requires_config_enabled MBEDTLS_DEBUG_C
1350requires_config_enabled MBEDTLS_HAVE_TIME
1351requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1352requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Ronald Cron1f63fe42024-02-23 15:49:12 +01001353run_test "TLS 1.3 m->m: Ephemeral over PSK kex with early data enabled" \
Ronald Cron74191a52024-03-09 17:38:16 +01001354 "$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 +02001355 "$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 +01001356 0 \
1357 -s "key exchange mode: ephemeral" \
1358 -S "key exchange mode: psk" \
1359 -s "found matched identity" \
1360 -s "EarlyData: rejected, not a session resumption" \
1361 -C "EncryptedExtensions: early_data(42) extension exists."