blob: 1bb251fdb8810e31c028cad7c5c05e62c5b0f9d3 [file] [log] [blame]
Gilles Peskineab84fe82024-09-13 13:53:50 +02001# Systematic testing of TLS 1.3 key exchange modes.
Jerry Yu6a9beba2022-07-31 12:45:25 +08002
Jerry Yu97be6a92022-11-09 22:43:31 +08003# DO NOT ADD NEW TEST CASES INTO THIS FILE. The left cases will be generated by
Jerry Yu616ba752022-11-08 21:49:47 +08004# scripts in future(#6280)
Jerry Yue7b4b582022-08-25 17:53:13 +08005
Gilles Peskineab84fe82024-09-13 13:53:50 +02006# Copyright The Mbed TLS Contributors
7# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
8#
9
Jerry Yue7b4b582022-08-25 17:53:13 +080010requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020011requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020012requires_config_enabled MBEDTLS_SSL_SRV_C
13requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +020014requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +080015run_test "TLS 1.3: G->m: all/psk, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010016 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +080017 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
18 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
19 localhost" \
20 0 \
21 -s "found psk key exchange modes extension" \
22 -s "found pre_shared_key extension" \
23 -s "Found PSK_EPHEMERAL KEX MODE" \
24 -s "Found PSK KEX MODE" \
25 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +010026 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +080027 -s "key exchange mode: psk$" \
28 -S "key exchange mode: psk_ephemeral" \
29 -S "key exchange mode: ephemeral"
30
31requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020032requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020033requires_config_enabled MBEDTLS_SSL_SRV_C
34requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +020035requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +080036run_test "TLS 1.3: G->m: all/psk, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010037 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +080038 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
39 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
40 localhost" \
41 1 \
42 -s "found psk key exchange modes extension" \
43 -s "found pre_shared_key extension" \
44 -s "Found PSK_EPHEMERAL KEX MODE" \
45 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +010046 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +080047 -S "key exchange mode: psk$" \
48 -S "key exchange mode: psk_ephemeral" \
49 -S "key exchange mode: ephemeral"
50
51requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020052requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020053requires_config_enabled MBEDTLS_SSL_SRV_C
54requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +020055requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +080056run_test "TLS 1.3: G->m: all/psk, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010057 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +080058 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
59 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
60 localhost" \
61 1 \
62 -s "found psk key exchange modes extension" \
63 -s "found pre_shared_key extension" \
64 -s "Found PSK_EPHEMERAL KEX MODE" \
65 -s "Found PSK KEX MODE" \
66 -s "Invalid binder." \
67 -S "key exchange mode: psk$" \
68 -S "key exchange mode: psk_ephemeral" \
69 -S "key exchange mode: ephemeral"
70
71requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020072requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020073requires_config_enabled MBEDTLS_SSL_SRV_C
74requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +020075requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +080076run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010077 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +080078 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
79 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
80 localhost" \
81 0 \
82 -s "found psk key exchange modes extension" \
83 -s "found pre_shared_key extension" \
84 -S "Found PSK_EPHEMERAL KEX MODE" \
85 -s "Found PSK KEX MODE" \
86 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +010087 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +080088 -s "key exchange mode: psk$" \
89 -S "key exchange mode: psk_ephemeral" \
90 -S "key exchange mode: ephemeral"
91
92requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020093requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +020094requires_config_enabled MBEDTLS_SSL_SRV_C
95requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +020096requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +080097run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +010098 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +080099 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
100 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
101 localhost" \
102 1 \
103 -s "found psk key exchange modes extension" \
104 -s "found pre_shared_key extension" \
105 -S "Found PSK_EPHEMERAL KEX MODE" \
106 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100107 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800108 -S "key exchange mode: psk$" \
109 -S "key exchange mode: psk_ephemeral" \
110 -S "key exchange mode: ephemeral"
111
112requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200113requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200114requires_config_enabled MBEDTLS_SSL_SRV_C
115requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200116requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +0800117run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100118 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800119 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
120 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
121 localhost" \
122 1 \
123 -s "found psk key exchange modes extension" \
124 -s "found pre_shared_key extension" \
125 -S "Found PSK_EPHEMERAL KEX MODE" \
126 -s "Found PSK KEX MODE" \
127 -s "Invalid binder." \
128 -S "key exchange mode: psk$" \
129 -S "key exchange mode: psk_ephemeral" \
130 -S "key exchange mode: ephemeral"
131
132requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200133requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200134requires_config_enabled MBEDTLS_SSL_SRV_C
135requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200136requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800137run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100138 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800139 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
140 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
141 localhost" \
142 0 \
143 -s "found psk key exchange modes extension" \
144 -s "found pre_shared_key extension" \
145 -s "Found PSK_EPHEMERAL KEX MODE" \
146 -S "Found PSK KEX MODE" \
147 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100148 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800149 -S "key exchange mode: psk$" \
150 -s "key exchange mode: psk_ephemeral" \
151 -S "key exchange mode: ephemeral"
152
153requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200154requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200155requires_config_enabled MBEDTLS_SSL_SRV_C
156requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200157requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800158run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100159 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800160 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
161 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
162 localhost" \
163 1 \
164 -s "found psk key exchange modes extension" \
165 -s "found pre_shared_key extension" \
166 -s "Found PSK_EPHEMERAL KEX MODE" \
167 -S "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100168 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800169 -S "key exchange mode: psk$" \
170 -S "key exchange mode: psk_ephemeral" \
171 -S "key exchange mode: ephemeral"
172
173requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200174requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200175requires_config_enabled MBEDTLS_SSL_SRV_C
176requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200177requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800178run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100179 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800180 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
181 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
182 localhost" \
183 1 \
184 -s "found psk key exchange modes extension" \
185 -s "found pre_shared_key extension" \
186 -s "Found PSK_EPHEMERAL KEX MODE" \
187 -S "Found PSK KEX MODE" \
188 -s "Invalid binder." \
189 -S "key exchange mode: psk$" \
190 -S "key exchange mode: psk_ephemeral" \
191 -S "key exchange mode: ephemeral"
192
193requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200194requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200195requires_config_enabled MBEDTLS_SSL_SRV_C
196requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200197requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800198run_test "TLS 1.3: G->m: all/psk_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100199 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800200 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
201 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
202 localhost" \
203 0 \
204 -s "found psk key exchange modes extension" \
205 -s "found pre_shared_key extension" \
206 -s "Found PSK_EPHEMERAL KEX MODE" \
207 -s "Found PSK KEX MODE" \
208 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100209 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800210 -S "key exchange mode: psk$" \
211 -s "key exchange mode: psk_ephemeral" \
212 -S "key exchange mode: ephemeral"
213
214requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200215requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200216requires_config_enabled MBEDTLS_SSL_SRV_C
217requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200218requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800219run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100220 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800221 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
222 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
223 localhost" \
224 1 \
225 -s "found psk key exchange modes extension" \
226 -s "found pre_shared_key extension" \
227 -s "Found PSK_EPHEMERAL KEX MODE" \
228 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100229 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800230 -S "key exchange mode: psk$" \
231 -S "key exchange mode: psk_ephemeral" \
232 -S "key exchange mode: ephemeral"
233
234requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200235requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200236requires_config_enabled MBEDTLS_SSL_SRV_C
237requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200238requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800239run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100240 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800241 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
242 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
243 localhost" \
244 1 \
245 -s "found psk key exchange modes extension" \
246 -s "found pre_shared_key extension" \
247 -s "Found PSK_EPHEMERAL KEX MODE" \
248 -s "Found PSK KEX MODE" \
249 -s "Invalid binder." \
250 -S "key exchange mode: psk$" \
251 -S "key exchange mode: psk_ephemeral" \
252 -S "key exchange mode: ephemeral"
253
254requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200255requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200256requires_config_enabled MBEDTLS_SSL_SRV_C
257requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200258requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +0800259run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_ephemeral, fail, no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100260 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800261 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
262 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
263 localhost" \
264 1 \
265 -s "found psk key exchange modes extension" \
266 -s "found pre_shared_key extension" \
267 -S "Found PSK_EPHEMERAL KEX MODE" \
268 -s "Found PSK KEX MODE" \
269 -S "key exchange mode: psk$" \
270 -S "key exchange mode: psk_ephemeral" \
271 -S "key exchange mode: ephemeral"
272
273requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200274requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200275requires_config_enabled MBEDTLS_SSL_SRV_C
276requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200277requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
278requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800279run_test "TLS 1.3: G->m: ephemeral_all/psk_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100280 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800281 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
282 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
283 localhost" \
284 0 \
285 -s "found psk key exchange modes extension" \
286 -s "found pre_shared_key extension" \
287 -s "Found PSK_EPHEMERAL KEX MODE" \
288 -S "Found PSK KEX MODE" \
289 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100290 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800291 -S "key exchange mode: psk$" \
292 -s "key exchange mode: psk_ephemeral" \
293 -S "key exchange mode: ephemeral"
294
295requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200296requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200297requires_config_enabled MBEDTLS_SSL_SRV_C
298requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200299requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
300requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800301run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100302 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800303 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
304 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
305 localhost" \
306 1 \
307 -s "found psk key exchange modes extension" \
308 -s "found pre_shared_key extension" \
309 -s "Found PSK_EPHEMERAL KEX MODE" \
310 -S "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100311 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800312 -S "key exchange mode: psk$" \
313 -S "key exchange mode: psk_ephemeral" \
314 -S "key exchange mode: ephemeral"
315
316requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200317requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200318requires_config_enabled MBEDTLS_SSL_SRV_C
319requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200320requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
321requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800322run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100323 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800324 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
325 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
326 localhost" \
327 1 \
328 -s "found psk key exchange modes extension" \
329 -s "found pre_shared_key extension" \
330 -s "Found PSK_EPHEMERAL KEX MODE" \
331 -S "Found PSK KEX MODE" \
332 -s "Invalid binder." \
333 -S "key exchange mode: psk$" \
334 -S "key exchange mode: psk_ephemeral" \
335 -S "key exchange mode: ephemeral"
336
337requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200338requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200339requires_config_enabled MBEDTLS_SSL_SRV_C
340requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200341requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
342requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800343run_test "TLS 1.3: G->m: all/psk_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100344 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800345 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
346 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
347 localhost" \
348 0 \
349 -s "found psk key exchange modes extension" \
350 -s "found pre_shared_key extension" \
351 -s "Found PSK_EPHEMERAL KEX MODE" \
352 -s "Found PSK KEX MODE" \
353 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100354 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800355 -S "key exchange mode: psk$" \
356 -s "key exchange mode: psk_ephemeral" \
357 -S "key exchange mode: ephemeral"
358
359requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200360requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200361requires_config_enabled MBEDTLS_SSL_SRV_C
362requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200363requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
364requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800365run_test "TLS 1.3: G->m: all/psk_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100366 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800367 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
368 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
369 localhost" \
370 1 \
371 -s "found psk key exchange modes extension" \
372 -s "found pre_shared_key extension" \
373 -s "Found PSK_EPHEMERAL KEX MODE" \
374 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100375 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800376 -S "key exchange mode: psk$" \
377 -S "key exchange mode: psk_ephemeral" \
378 -S "key exchange mode: ephemeral"
379
380requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200381requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200382requires_config_enabled MBEDTLS_SSL_SRV_C
383requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200384requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
385requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800386run_test "TLS 1.3: G->m: all/psk_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100387 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800388 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
389 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
390 localhost" \
391 1 \
392 -s "found psk key exchange modes extension" \
393 -s "found pre_shared_key extension" \
394 -s "Found PSK_EPHEMERAL KEX MODE" \
395 -s "Found PSK KEX MODE" \
396 -s "Invalid binder." \
397 -S "key exchange mode: psk$" \
398 -S "key exchange mode: psk_ephemeral" \
399 -S "key exchange mode: ephemeral"
400
401requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200402requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200403requires_config_enabled MBEDTLS_SSL_SRV_C
404requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200405requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
406requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +0800407run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100408 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800409 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
410 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
411 localhost" \
412 0 \
413 -s "found psk key exchange modes extension" \
414 -s "found pre_shared_key extension" \
415 -S "Found PSK_EPHEMERAL KEX MODE" \
416 -s "Found PSK KEX MODE" \
417 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100418 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800419 -s "key exchange mode: psk$" \
420 -S "key exchange mode: psk_ephemeral" \
421 -S "key exchange mode: ephemeral"
422
423requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200424requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200425requires_config_enabled MBEDTLS_SSL_SRV_C
426requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200427requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
428requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +0800429run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100430 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800431 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
432 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
433 localhost" \
434 1 \
435 -s "found psk key exchange modes extension" \
436 -s "found pre_shared_key extension" \
437 -S "Found PSK_EPHEMERAL KEX MODE" \
438 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100439 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800440 -S "key exchange mode: psk$" \
441 -S "key exchange mode: psk_ephemeral" \
442 -S "key exchange mode: ephemeral"
443
444requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200445requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200446requires_config_enabled MBEDTLS_SSL_SRV_C
447requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200448requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
449requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +0800450run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100451 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800452 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
453 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
454 localhost" \
455 1 \
456 -s "found psk key exchange modes extension" \
457 -s "found pre_shared_key extension" \
458 -S "Found PSK_EPHEMERAL KEX MODE" \
459 -s "Found PSK KEX MODE" \
460 -s "Invalid binder." \
461 -S "key exchange mode: psk$" \
462 -S "key exchange mode: psk_ephemeral" \
463 -S "key exchange mode: ephemeral"
464
465requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200466requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200467requires_config_enabled MBEDTLS_SSL_SRV_C
468requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200469requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
470requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800471run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100472 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800473 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
474 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
475 localhost" \
476 0 \
477 -s "found psk key exchange modes extension" \
478 -s "found pre_shared_key extension" \
479 -s "Found PSK_EPHEMERAL KEX MODE" \
480 -S "Found PSK KEX MODE" \
481 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100482 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800483 -S "key exchange mode: psk$" \
484 -s "key exchange mode: psk_ephemeral" \
485 -S "key exchange mode: ephemeral"
486
487requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200488requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200489requires_config_enabled MBEDTLS_SSL_SRV_C
490requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200491requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
492requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800493run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good, key id mismatch, dhe." \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100494 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800495 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
496 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
497 localhost" \
498 0 \
499 -s "found psk key exchange modes extension" \
500 -s "found pre_shared_key extension" \
501 -s "Found PSK_EPHEMERAL KEX MODE" \
502 -S "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100503 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800504 -S "key exchange mode: psk$" \
505 -S "key exchange mode: psk_ephemeral" \
506 -s "key exchange mode: ephemeral"
507
508requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200509requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200510requires_config_enabled MBEDTLS_SSL_SRV_C
511requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200512requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
513requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800514run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100515 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800516 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
517 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
518 localhost" \
519 1 \
520 -s "found psk key exchange modes extension" \
521 -s "found pre_shared_key extension" \
522 -s "Found PSK_EPHEMERAL KEX MODE" \
523 -S "Found PSK KEX MODE" \
524 -s "Invalid binder." \
525 -S "key exchange mode: psk$" \
526 -S "key exchange mode: psk_ephemeral" \
527 -S "key exchange mode: ephemeral"
528
529requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200530requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200531requires_config_enabled MBEDTLS_SSL_SRV_C
532requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200533requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
534requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800535run_test "TLS 1.3: G->m: all/ephemeral_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100536 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800537 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
538 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
539 localhost" \
540 0 \
541 -s "found psk key exchange modes extension" \
542 -s "found pre_shared_key extension" \
543 -s "Found PSK_EPHEMERAL KEX MODE" \
544 -s "Found PSK KEX MODE" \
545 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100546 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800547 -S "key exchange mode: psk$" \
548 -s "key exchange mode: psk_ephemeral" \
549 -S "key exchange mode: ephemeral"
550
551requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200552requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200553requires_config_enabled MBEDTLS_SSL_SRV_C
554requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200555requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
556requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800557run_test "TLS 1.3: G->m: all/ephemeral_all, good, key id mismatch, dhe." \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100558 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800559 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
560 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
561 localhost" \
562 0 \
563 -s "found psk key exchange modes extension" \
564 -s "found pre_shared_key extension" \
565 -s "Found PSK_EPHEMERAL KEX MODE" \
566 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100567 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800568 -S "key exchange mode: psk$" \
569 -S "key exchange mode: psk_ephemeral" \
570 -s "key exchange mode: ephemeral"
571
572requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200573requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200574requires_config_enabled MBEDTLS_SSL_SRV_C
575requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200576requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
577requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800578run_test "TLS 1.3: G->m: all/ephemeral_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100579 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800580 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
581 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
582 localhost" \
583 1 \
584 -s "found psk key exchange modes extension" \
585 -s "found pre_shared_key extension" \
586 -s "Found PSK_EPHEMERAL KEX MODE" \
587 -s "Found PSK KEX MODE" \
588 -s "Invalid binder." \
589 -S "key exchange mode: psk$" \
590 -S "key exchange mode: psk_ephemeral" \
591 -S "key exchange mode: ephemeral"
592
593requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200594requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200595requires_config_enabled MBEDTLS_SSL_SRV_C
596requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200597requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
598requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +0800599run_test "TLS 1.3: G->m: psk_or_ephemeral/ephemeral_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100600 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800601 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
602 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
603 localhost" \
604 0 \
605 -s "found psk key exchange modes extension" \
606 -s "found pre_shared_key extension" \
607 -S "Found PSK_EPHEMERAL KEX MODE" \
608 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100609 -s "No suitable PSK key exchange mode" \
610 -S "Pre shared key found" \
611 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800612 -S "key exchange mode: psk$" \
613 -S "key exchange mode: psk_ephemeral" \
614 -s "key exchange mode: ephemeral"
615
616requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200617requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200618requires_config_enabled MBEDTLS_SSL_SRV_C
619requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200620requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
621requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
622requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800623run_test "TLS 1.3: G->m: ephemeral_all/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100624 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800625 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
626 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
627 localhost" \
628 0 \
629 -s "found psk key exchange modes extension" \
630 -s "found pre_shared_key extension" \
631 -s "Found PSK_EPHEMERAL KEX MODE" \
632 -S "Found PSK KEX MODE" \
633 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100634 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800635 -S "key exchange mode: psk$" \
636 -s "key exchange mode: psk_ephemeral" \
637 -S "key exchange mode: ephemeral"
638
639requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200640requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200641requires_config_enabled MBEDTLS_SSL_SRV_C
642requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200643requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
644requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
645requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800646run_test "TLS 1.3: G->m: ephemeral_all/all, good, key id mismatch, dhe." \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100647 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800648 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
649 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
650 localhost" \
651 0 \
652 -s "found psk key exchange modes extension" \
653 -s "found pre_shared_key extension" \
654 -s "Found PSK_EPHEMERAL KEX MODE" \
655 -S "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100656 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800657 -S "key exchange mode: psk$" \
658 -S "key exchange mode: psk_ephemeral" \
659 -s "key exchange mode: ephemeral"
660
661requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200662requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200663requires_config_enabled MBEDTLS_SSL_SRV_C
664requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200665requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
666requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
667requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800668run_test "TLS 1.3: G->m: ephemeral_all/all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100669 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800670 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
671 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
672 localhost" \
673 1 \
674 -s "found psk key exchange modes extension" \
675 -s "found pre_shared_key extension" \
676 -s "Found PSK_EPHEMERAL KEX MODE" \
677 -S "Found PSK KEX MODE" \
678 -s "Invalid binder." \
679 -S "key exchange mode: psk$" \
680 -S "key exchange mode: psk_ephemeral" \
681 -S "key exchange mode: ephemeral"
682
683requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200684requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200685requires_config_enabled MBEDTLS_SSL_SRV_C
686requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200687requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
688requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
689requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800690run_test "TLS 1.3: G->m: all/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100691 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800692 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
693 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
694 localhost" \
695 0 \
696 -s "found psk key exchange modes extension" \
697 -s "found pre_shared_key extension" \
698 -s "Found PSK_EPHEMERAL KEX MODE" \
699 -s "Found PSK KEX MODE" \
700 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100701 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800702 -S "key exchange mode: psk$" \
703 -s "key exchange mode: psk_ephemeral" \
704 -S "key exchange mode: ephemeral"
705
706requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200707requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200708requires_config_enabled MBEDTLS_SSL_SRV_C
709requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200710requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
711requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
712requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800713run_test "TLS 1.3: G->m: all/all, good, key id mismatch, dhe." \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100714 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800715 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
716 --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
717 localhost" \
718 0 \
719 -s "found psk key exchange modes extension" \
720 -s "found pre_shared_key extension" \
721 -s "Found PSK_EPHEMERAL KEX MODE" \
722 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100723 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800724 -S "key exchange mode: psk$" \
725 -S "key exchange mode: psk_ephemeral" \
726 -s "key exchange mode: ephemeral"
727
728requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200729requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200730requires_config_enabled MBEDTLS_SSL_SRV_C
731requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200732requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
733requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
734requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800735run_test "TLS 1.3: G->m: all/all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100736 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800737 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
738 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
739 localhost" \
740 1 \
741 -s "found psk key exchange modes extension" \
742 -s "found pre_shared_key extension" \
743 -s "Found PSK_EPHEMERAL KEX MODE" \
744 -s "Found PSK KEX MODE" \
745 -s "Invalid binder." \
746 -S "key exchange mode: psk$" \
747 -S "key exchange mode: psk_ephemeral" \
748 -S "key exchange mode: ephemeral"
749
750requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200751requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200752requires_config_enabled MBEDTLS_SSL_SRV_C
753requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200754requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
755requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
756requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +0800757run_test "TLS 1.3: G->m: psk_or_ephemeral/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100758 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800759 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
760 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
761 localhost" \
762 0 \
763 -s "found psk key exchange modes extension" \
764 -s "found pre_shared_key extension" \
765 -S "Found PSK_EPHEMERAL KEX MODE" \
766 -s "Found PSK KEX MODE" \
767 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100768 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800769 -S "key exchange mode: psk$" \
770 -S "key exchange mode: psk_ephemeral" \
771 -s "key exchange mode: ephemeral"
772
773requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200774requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200775requires_config_enabled MBEDTLS_SSL_SRV_C
776requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200777requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
778requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
779requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +0800780run_test "TLS 1.3: G->m: psk_or_ephemeral/all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100781 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800782 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
783 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
784 localhost" \
785 1 \
786 -s "found psk key exchange modes extension" \
787 -s "found pre_shared_key extension" \
788 -S "Found PSK_EPHEMERAL KEX MODE" \
789 -s "Found PSK KEX MODE" \
790 -s "Invalid binder." \
791 -S "key exchange mode: psk$" \
792 -S "key exchange mode: psk_ephemeral" \
793 -S "key exchange mode: ephemeral"
794
795requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200796requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200797requires_config_enabled MBEDTLS_SSL_SRV_C
798requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200799requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
800requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800801run_test "TLS 1.3: G->m: ephemeral_all/psk_or_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100802 "$P_SRV tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800803 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \
804 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
805 localhost" \
806 0 \
807 -s "found psk key exchange modes extension" \
808 -s "found pre_shared_key extension" \
809 -s "Found PSK_EPHEMERAL KEX MODE" \
810 -S "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +0100811 -s "No suitable PSK key exchange mode" \
812 -S "Pre shared key found" \
813 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800814 -S "key exchange mode: psk$" \
815 -S "key exchange mode: psk_ephemeral" \
816 -s "key exchange mode: ephemeral"
817
818requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200819requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200820requires_config_enabled MBEDTLS_SSL_SRV_C
821requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200822requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
823requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800824run_test "TLS 1.3: G->m: all/psk_or_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100825 "$P_SRV tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800826 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
827 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
828 localhost" \
829 0 \
830 -s "found psk key exchange modes extension" \
831 -s "found pre_shared_key extension" \
832 -s "Found PSK_EPHEMERAL KEX MODE" \
833 -s "Found PSK KEX MODE" \
834 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100835 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800836 -S "key exchange mode: psk$" \
837 -S "key exchange mode: psk_ephemeral" \
838 -s "key exchange mode: ephemeral"
839
840requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200841requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200842requires_config_enabled MBEDTLS_SSL_SRV_C
843requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200844requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
845requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +0800846run_test "TLS 1.3: G->m: all/psk_or_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100847 "$P_SRV tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800848 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \
849 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
850 localhost" \
851 1 \
852 -s "found psk key exchange modes extension" \
853 -s "found pre_shared_key extension" \
854 -s "Found PSK_EPHEMERAL KEX MODE" \
855 -s "Found PSK KEX MODE" \
856 -s "Invalid binder." \
857 -S "key exchange mode: psk$" \
858 -S "key exchange mode: psk_ephemeral" \
859 -S "key exchange mode: ephemeral"
860
861requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200862requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200863requires_config_enabled MBEDTLS_SSL_SRV_C
864requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200865requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
866requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +0800867run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100868 "$P_SRV tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800869 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
870 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
871 localhost" \
872 0 \
873 -s "found psk key exchange modes extension" \
874 -s "found pre_shared_key extension" \
875 -S "Found PSK_EPHEMERAL KEX MODE" \
876 -s "Found PSK KEX MODE" \
877 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +0100878 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800879 -S "key exchange mode: psk$" \
880 -S "key exchange mode: psk_ephemeral" \
881 -s "key exchange mode: ephemeral"
882
883requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200884requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200885requires_config_enabled MBEDTLS_SSL_SRV_C
886requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200887requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
888requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Jerry Yu66886692022-08-31 17:08:34 +0800889run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100890 "$P_SRV tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800891 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \
892 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \
893 localhost" \
894 1 \
895 -s "found psk key exchange modes extension" \
896 -s "found pre_shared_key extension" \
897 -S "Found PSK_EPHEMERAL KEX MODE" \
898 -s "Found PSK KEX MODE" \
899 -s "Invalid binder." \
900 -S "key exchange mode: psk$" \
901 -S "key exchange mode: psk_ephemeral" \
902 -S "key exchange mode: ephemeral"
903
Jerry Yu58af2332022-09-06 11:19:31 +0800904requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200905requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200906requires_config_enabled MBEDTLS_SSL_SRV_C
907requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200908requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Przemek Stekielc31a7982023-06-27 10:53:33 +0200909requires_config_enabled PSA_WANT_ALG_ECDH
Jerry Yu58af2332022-09-06 11:19:31 +0800910run_test "TLS 1.3: G->m: psk_ephemeral group(secp256r1) check, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100911 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
Jerry Yu58af2332022-09-06 11:19:31 +0800912 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1 \
913 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
914 localhost" \
915 0 \
916 -s "write selected_group: secp256r1" \
917 -S "key exchange mode: psk$" \
918 -s "key exchange mode: psk_ephemeral" \
919 -S "key exchange mode: ephemeral"
920
921requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200922requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200923requires_config_enabled MBEDTLS_SSL_SRV_C
924requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200925requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Przemek Stekielc31a7982023-06-27 10:53:33 +0200926requires_config_enabled PSA_WANT_ALG_ECDH
Jerry Yu58af2332022-09-06 11:19:31 +0800927run_test "TLS 1.3: G->m: psk_ephemeral group(secp384r1) check, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100928 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
Jerry Yu58af2332022-09-06 11:19:31 +0800929 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1 \
930 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
931 localhost" \
932 0 \
933 -s "write selected_group: secp384r1" \
934 -S "key exchange mode: psk$" \
935 -s "key exchange mode: psk_ephemeral" \
936 -S "key exchange mode: ephemeral"
937
938requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200939requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200940requires_config_enabled MBEDTLS_SSL_SRV_C
941requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200942requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Przemek Stekielc31a7982023-06-27 10:53:33 +0200943requires_config_enabled PSA_WANT_ALG_ECDH
Jerry Yu58af2332022-09-06 11:19:31 +0800944run_test "TLS 1.3: G->m: psk_ephemeral group(secp521r1) check, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100945 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
Jerry Yu58af2332022-09-06 11:19:31 +0800946 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1 \
947 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
948 localhost" \
949 0 \
950 -s "write selected_group: secp521r1" \
951 -S "key exchange mode: psk$" \
952 -s "key exchange mode: psk_ephemeral" \
953 -S "key exchange mode: ephemeral"
954
955requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200956requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200957requires_config_enabled MBEDTLS_SSL_SRV_C
958requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200959requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Przemek Stekielc31a7982023-06-27 10:53:33 +0200960requires_config_enabled PSA_WANT_ALG_ECDH
Jerry Yu58af2332022-09-06 11:19:31 +0800961run_test "TLS 1.3: G->m: psk_ephemeral group(x25519) check, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100962 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
Jerry Yu58af2332022-09-06 11:19:31 +0800963 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519 \
964 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
965 localhost" \
966 0 \
967 -s "write selected_group: x25519" \
968 -S "key exchange mode: psk$" \
969 -s "key exchange mode: psk_ephemeral" \
970 -S "key exchange mode: ephemeral"
971
972requires_gnutls_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200973requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200974requires_config_enabled MBEDTLS_SSL_SRV_C
975requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200976requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Przemek Stekielc31a7982023-06-27 10:53:33 +0200977requires_config_enabled PSA_WANT_ALG_ECDH
Jerry Yu58af2332022-09-06 11:19:31 +0800978run_test "TLS 1.3: G->m: psk_ephemeral group(x448) check, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100979 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
Jerry Yu58af2332022-09-06 11:19:31 +0800980 "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X448 \
981 --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
982 localhost" \
983 0 \
984 -s "write selected_group: x448" \
985 -S "key exchange mode: psk$" \
986 -s "key exchange mode: psk_ephemeral" \
987 -S "key exchange mode: ephemeral"
988
Jerry Yue7b4b582022-08-25 17:53:13 +0800989requires_openssl_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200990requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +0200991requires_config_enabled MBEDTLS_SSL_SRV_C
992requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +0200993requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +0800994run_test "TLS 1.3: O->m: ephemeral_all/psk, fail, no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +0100995 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +0800996 "$O_NEXT_CLI -tls1_3 -msg \
997 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
998 1 \
999 -s "found psk key exchange modes extension" \
1000 -s "found pre_shared_key extension" \
1001 -s "Found PSK_EPHEMERAL KEX MODE" \
1002 -S "Found PSK KEX MODE" \
1003 -S "key exchange mode: psk$" \
1004 -S "key exchange mode: psk_ephemeral" \
1005 -S "key exchange mode: ephemeral"
1006
1007requires_openssl_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001008requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001009requires_config_enabled MBEDTLS_SSL_SRV_C
1010requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001011requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001012run_test "TLS 1.3: O->m: all/psk, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001013 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001014 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1015 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1016 0 \
1017 -s "found psk key exchange modes extension" \
1018 -s "found pre_shared_key extension" \
1019 -s "Found PSK_EPHEMERAL KEX MODE" \
1020 -s "Found PSK KEX MODE" \
1021 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +01001022 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001023 -s "key exchange mode: psk$" \
1024 -S "key exchange mode: psk_ephemeral" \
1025 -S "key exchange mode: ephemeral"
1026
1027requires_openssl_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001028requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001029requires_config_enabled MBEDTLS_SSL_SRV_C
1030requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001031requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001032run_test "TLS 1.3: O->m: all/psk, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001033 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001034 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1035 -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1036 1 \
1037 -s "found psk key exchange modes extension" \
1038 -s "found pre_shared_key extension" \
1039 -s "Found PSK_EPHEMERAL KEX MODE" \
1040 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +01001041 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001042 -S "key exchange mode: psk$" \
1043 -S "key exchange mode: psk_ephemeral" \
1044 -S "key exchange mode: ephemeral"
1045
1046requires_openssl_tls1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001047requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001048requires_config_enabled MBEDTLS_SSL_SRV_C
1049requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001050requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001051run_test "TLS 1.3: O->m: all/psk, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001052 "$P_SRV tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001053 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1054 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \
1055 1 \
1056 -s "found psk key exchange modes extension" \
1057 -s "found pre_shared_key extension" \
1058 -s "Found PSK_EPHEMERAL KEX MODE" \
1059 -s "Found PSK KEX MODE" \
1060 -s "Invalid binder." \
1061 -S "key exchange mode: psk$" \
1062 -S "key exchange mode: psk_ephemeral" \
1063 -S "key exchange mode: ephemeral"
1064
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001065requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001066requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001067requires_config_enabled MBEDTLS_SSL_SRV_C
1068requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001069requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001070run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001071 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001072 "$O_NEXT_CLI -tls1_3 -msg \
1073 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1074 0 \
1075 -s "found psk key exchange modes extension" \
1076 -s "found pre_shared_key extension" \
1077 -s "Found PSK_EPHEMERAL KEX MODE" \
1078 -S "Found PSK KEX MODE" \
1079 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +01001080 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001081 -S "key exchange mode: psk$" \
1082 -s "key exchange mode: psk_ephemeral" \
1083 -S "key exchange mode: ephemeral"
1084
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001085requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001086requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001087requires_config_enabled MBEDTLS_SSL_SRV_C
1088requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001089requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001090run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001091 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001092 "$O_NEXT_CLI -tls1_3 -msg \
1093 -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1094 1 \
1095 -s "found psk key exchange modes extension" \
1096 -s "found pre_shared_key extension" \
1097 -s "Found PSK_EPHEMERAL KEX MODE" \
1098 -S "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +01001099 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001100 -S "key exchange mode: psk$" \
1101 -S "key exchange mode: psk_ephemeral" \
1102 -S "key exchange mode: ephemeral"
1103
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001104requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001105requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001106requires_config_enabled MBEDTLS_SSL_SRV_C
1107requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001108requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001109run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001110 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001111 "$O_NEXT_CLI -tls1_3 -msg \
1112 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \
1113 1 \
1114 -s "found psk key exchange modes extension" \
1115 -s "found pre_shared_key extension" \
1116 -s "Found PSK_EPHEMERAL KEX MODE" \
1117 -S "Found PSK KEX MODE" \
1118 -s "Invalid binder." \
1119 -S "key exchange mode: psk$" \
1120 -S "key exchange mode: psk_ephemeral" \
1121 -S "key exchange mode: ephemeral"
1122
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001123requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001124requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001125requires_config_enabled MBEDTLS_SSL_SRV_C
1126requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001127requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001128run_test "TLS 1.3: O->m: all/psk_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001129 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001130 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1131 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1132 0 \
1133 -s "found psk key exchange modes extension" \
1134 -s "found pre_shared_key extension" \
1135 -s "Found PSK_EPHEMERAL KEX MODE" \
1136 -s "Found PSK KEX MODE" \
1137 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +01001138 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001139 -S "key exchange mode: psk$" \
1140 -s "key exchange mode: psk_ephemeral" \
1141 -S "key exchange mode: ephemeral"
1142
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001143requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001144requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001145requires_config_enabled MBEDTLS_SSL_SRV_C
1146requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001147requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001148run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001149 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001150 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1151 -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1152 1 \
1153 -s "found psk key exchange modes extension" \
1154 -s "found pre_shared_key extension" \
1155 -s "Found PSK_EPHEMERAL KEX MODE" \
1156 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +01001157 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001158 -S "key exchange mode: psk$" \
1159 -S "key exchange mode: psk_ephemeral" \
1160 -S "key exchange mode: ephemeral"
1161
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001162requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001163requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001164requires_config_enabled MBEDTLS_SSL_SRV_C
1165requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001166requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001167run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001168 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001169 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1170 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \
1171 1 \
1172 -s "found psk key exchange modes extension" \
1173 -s "found pre_shared_key extension" \
1174 -s "Found PSK_EPHEMERAL KEX MODE" \
1175 -s "Found PSK KEX MODE" \
1176 -s "Invalid binder." \
1177 -S "key exchange mode: psk$" \
1178 -S "key exchange mode: psk_ephemeral" \
1179 -S "key exchange mode: ephemeral"
1180
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001181requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001182requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001183requires_config_enabled MBEDTLS_SSL_SRV_C
1184requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001185requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1186requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001187run_test "TLS 1.3: O->m: ephemeral_all/psk_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001188 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001189 "$O_NEXT_CLI -tls1_3 -msg \
1190 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1191 0 \
1192 -s "found psk key exchange modes extension" \
1193 -s "found pre_shared_key extension" \
1194 -s "Found PSK_EPHEMERAL KEX MODE" \
1195 -S "Found PSK KEX MODE" \
1196 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +01001197 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001198 -S "key exchange mode: psk$" \
1199 -s "key exchange mode: psk_ephemeral" \
1200 -S "key exchange mode: ephemeral"
1201
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001202requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001203requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001204requires_config_enabled MBEDTLS_SSL_SRV_C
1205requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001206requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1207requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001208run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001209 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001210 "$O_NEXT_CLI -tls1_3 -msg \
1211 -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1212 1 \
1213 -s "found psk key exchange modes extension" \
1214 -s "found pre_shared_key extension" \
1215 -s "Found PSK_EPHEMERAL KEX MODE" \
1216 -S "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +01001217 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001218 -S "key exchange mode: psk$" \
1219 -S "key exchange mode: psk_ephemeral" \
1220 -S "key exchange mode: ephemeral"
1221
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001222requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001223requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001224requires_config_enabled MBEDTLS_SSL_SRV_C
1225requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001226requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1227requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001228run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001229 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001230 "$O_NEXT_CLI -tls1_3 -msg \
1231 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \
1232 1 \
1233 -s "found psk key exchange modes extension" \
1234 -s "found pre_shared_key extension" \
1235 -s "Found PSK_EPHEMERAL KEX MODE" \
1236 -S "Found PSK KEX MODE" \
1237 -s "Invalid binder." \
1238 -S "key exchange mode: psk$" \
1239 -S "key exchange mode: psk_ephemeral" \
1240 -S "key exchange mode: ephemeral"
1241
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001242requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001243requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001244requires_config_enabled MBEDTLS_SSL_SRV_C
1245requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001246requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1247requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001248run_test "TLS 1.3: O->m: all/psk_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001249 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001250 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1251 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1252 0 \
1253 -s "found psk key exchange modes extension" \
1254 -s "found pre_shared_key extension" \
1255 -s "Found PSK_EPHEMERAL KEX MODE" \
1256 -s "Found PSK KEX MODE" \
1257 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +01001258 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001259 -S "key exchange mode: psk$" \
1260 -s "key exchange mode: psk_ephemeral" \
1261 -S "key exchange mode: ephemeral"
1262
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001263requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001264requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001265requires_config_enabled MBEDTLS_SSL_SRV_C
1266requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001267requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1268requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001269run_test "TLS 1.3: O->m: all/psk_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001270 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001271 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1272 -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1273 1 \
1274 -s "found psk key exchange modes extension" \
1275 -s "found pre_shared_key extension" \
1276 -s "Found PSK_EPHEMERAL KEX MODE" \
1277 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +01001278 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001279 -S "key exchange mode: psk$" \
1280 -S "key exchange mode: psk_ephemeral" \
1281 -S "key exchange mode: ephemeral"
1282
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001283requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001284requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001285requires_config_enabled MBEDTLS_SSL_SRV_C
1286requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001287requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1288requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001289run_test "TLS 1.3: O->m: all/psk_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001290 "$P_SRV tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001291 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1292 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \
1293 1 \
1294 -s "found psk key exchange modes extension" \
1295 -s "found pre_shared_key extension" \
1296 -s "Found PSK_EPHEMERAL KEX MODE" \
1297 -s "Found PSK KEX MODE" \
1298 -s "Invalid binder." \
1299 -S "key exchange mode: psk$" \
1300 -S "key exchange mode: psk_ephemeral" \
1301 -S "key exchange mode: ephemeral"
1302
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001303requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001304requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001305requires_config_enabled MBEDTLS_SSL_SRV_C
1306requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001307requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1308requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001309run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001310 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001311 "$O_NEXT_CLI -tls1_3 -msg \
1312 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1313 0 \
1314 -s "found psk key exchange modes extension" \
1315 -s "found pre_shared_key extension" \
1316 -s "Found PSK_EPHEMERAL KEX MODE" \
1317 -S "Found PSK KEX MODE" \
1318 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +01001319 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001320 -S "key exchange mode: psk$" \
1321 -s "key exchange mode: psk_ephemeral" \
1322 -S "key exchange mode: ephemeral"
1323
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001324requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001325requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001326requires_config_enabled MBEDTLS_SSL_SRV_C
1327requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001328requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1329requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001330run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good, key id mismatch, dhe." \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001331 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001332 "$O_NEXT_CLI -tls1_3 -msg \
1333 -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1334 0 \
1335 -s "found psk key exchange modes extension" \
1336 -s "found pre_shared_key extension" \
1337 -s "Found PSK_EPHEMERAL KEX MODE" \
1338 -S "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +01001339 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001340 -S "key exchange mode: psk$" \
1341 -S "key exchange mode: psk_ephemeral" \
1342 -s "key exchange mode: ephemeral"
1343
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001344requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001345requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001346requires_config_enabled MBEDTLS_SSL_SRV_C
1347requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001348requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1349requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001350run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001351 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001352 "$O_NEXT_CLI -tls1_3 -msg \
1353 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \
1354 1 \
1355 -s "found psk key exchange modes extension" \
1356 -s "found pre_shared_key extension" \
1357 -s "Found PSK_EPHEMERAL KEX MODE" \
1358 -S "Found PSK KEX MODE" \
1359 -s "Invalid binder." \
1360 -S "key exchange mode: psk$" \
1361 -S "key exchange mode: psk_ephemeral" \
1362 -S "key exchange mode: ephemeral"
1363
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001364requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001365requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001366requires_config_enabled MBEDTLS_SSL_SRV_C
1367requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001368requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1369requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001370run_test "TLS 1.3: O->m: all/ephemeral_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001371 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001372 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1373 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1374 0 \
1375 -s "found psk key exchange modes extension" \
1376 -s "found pre_shared_key extension" \
1377 -s "Found PSK_EPHEMERAL KEX MODE" \
1378 -s "Found PSK KEX MODE" \
1379 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +01001380 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001381 -S "key exchange mode: psk$" \
1382 -s "key exchange mode: psk_ephemeral" \
1383 -S "key exchange mode: ephemeral"
1384
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001385requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001386requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001387requires_config_enabled MBEDTLS_SSL_SRV_C
1388requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001389requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1390requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001391run_test "TLS 1.3: O->m: all/ephemeral_all, good, key id mismatch, dhe." \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001392 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001393 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1394 -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1395 0 \
1396 -s "found psk key exchange modes extension" \
1397 -s "found pre_shared_key extension" \
1398 -s "Found PSK_EPHEMERAL KEX MODE" \
1399 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +01001400 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001401 -S "key exchange mode: psk$" \
1402 -S "key exchange mode: psk_ephemeral" \
1403 -s "key exchange mode: ephemeral"
1404
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001405requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001406requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001407requires_config_enabled MBEDTLS_SSL_SRV_C
1408requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001409requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1410requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001411run_test "TLS 1.3: O->m: all/ephemeral_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001412 "$P_SRV tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001413 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1414 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \
1415 1 \
1416 -s "found psk key exchange modes extension" \
1417 -s "found pre_shared_key extension" \
1418 -s "Found PSK_EPHEMERAL KEX MODE" \
1419 -s "Found PSK KEX MODE" \
1420 -s "Invalid binder." \
1421 -S "key exchange mode: psk$" \
1422 -S "key exchange mode: psk_ephemeral" \
1423 -S "key exchange mode: ephemeral"
1424
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001425requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001426requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001427requires_config_enabled MBEDTLS_SSL_SRV_C
1428requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001429requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1430requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1431requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001432run_test "TLS 1.3: O->m: ephemeral_all/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001433 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001434 "$O_NEXT_CLI -tls1_3 -msg \
1435 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1436 0 \
1437 -s "found psk key exchange modes extension" \
1438 -s "found pre_shared_key extension" \
1439 -s "Found PSK_EPHEMERAL KEX MODE" \
1440 -S "Found PSK KEX MODE" \
1441 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +01001442 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001443 -S "key exchange mode: psk$" \
1444 -s "key exchange mode: psk_ephemeral" \
1445 -S "key exchange mode: ephemeral"
1446
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001447requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001448requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001449requires_config_enabled MBEDTLS_SSL_SRV_C
1450requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001451requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1452requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1453requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001454run_test "TLS 1.3: O->m: ephemeral_all/all, good, key id mismatch, dhe." \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001455 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001456 "$O_NEXT_CLI -tls1_3 -msg \
1457 -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1458 0 \
1459 -s "found psk key exchange modes extension" \
1460 -s "found pre_shared_key extension" \
1461 -s "Found PSK_EPHEMERAL KEX MODE" \
1462 -S "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +01001463 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001464 -S "key exchange mode: psk$" \
1465 -S "key exchange mode: psk_ephemeral" \
1466 -s "key exchange mode: ephemeral"
1467
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001468requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001469requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001470requires_config_enabled MBEDTLS_SSL_SRV_C
1471requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001472requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1473requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1474requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001475run_test "TLS 1.3: O->m: ephemeral_all/all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001476 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001477 "$O_NEXT_CLI -tls1_3 -msg \
1478 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \
1479 1 \
1480 -s "found psk key exchange modes extension" \
1481 -s "found pre_shared_key extension" \
1482 -s "Found PSK_EPHEMERAL KEX MODE" \
1483 -S "Found PSK KEX MODE" \
1484 -s "Invalid binder." \
1485 -S "key exchange mode: psk$" \
1486 -S "key exchange mode: psk_ephemeral" \
1487 -S "key exchange mode: ephemeral"
1488
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001489requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001490requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001491requires_config_enabled MBEDTLS_SSL_SRV_C
1492requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001493requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1494requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1495requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001496run_test "TLS 1.3: O->m: all/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001497 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001498 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1499 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1500 0 \
1501 -s "found psk key exchange modes extension" \
1502 -s "found pre_shared_key extension" \
1503 -s "Found PSK_EPHEMERAL KEX MODE" \
1504 -s "Found PSK KEX MODE" \
1505 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +01001506 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001507 -S "key exchange mode: psk$" \
1508 -s "key exchange mode: psk_ephemeral" \
1509 -S "key exchange mode: ephemeral"
1510
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001511requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001512requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001513requires_config_enabled MBEDTLS_SSL_SRV_C
1514requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001515requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1516requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1517requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001518run_test "TLS 1.3: O->m: all/all, good, key id mismatch, dhe." \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001519 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001520 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1521 -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1522 0 \
1523 -s "found psk key exchange modes extension" \
1524 -s "found pre_shared_key extension" \
1525 -s "Found PSK_EPHEMERAL KEX MODE" \
1526 -s "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +01001527 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001528 -S "key exchange mode: psk$" \
1529 -S "key exchange mode: psk_ephemeral" \
1530 -s "key exchange mode: ephemeral"
1531
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001532requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001533requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001534requires_config_enabled MBEDTLS_SSL_SRV_C
1535requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001536requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1537requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1538requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001539run_test "TLS 1.3: O->m: all/all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001540 "$P_SRV tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001541 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1542 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \
1543 1 \
1544 -s "found psk key exchange modes extension" \
1545 -s "found pre_shared_key extension" \
1546 -s "Found PSK_EPHEMERAL KEX MODE" \
1547 -s "Found PSK KEX MODE" \
1548 -s "Invalid binder." \
1549 -S "key exchange mode: psk$" \
1550 -S "key exchange mode: psk_ephemeral" \
1551 -S "key exchange mode: ephemeral"
1552
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001553requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001554requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001555requires_config_enabled MBEDTLS_SSL_SRV_C
1556requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001557requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1558requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Jerry Yu7101b872022-08-31 14:15:23 +08001559run_test "TLS 1.3: O->m: ephemeral_all/psk_or_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001560 "$P_SRV tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001561 "$O_NEXT_CLI -tls1_3 -msg \
1562 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1563 0 \
1564 -s "found psk key exchange modes extension" \
1565 -s "found pre_shared_key extension" \
1566 -s "Found PSK_EPHEMERAL KEX MODE" \
1567 -S "Found PSK KEX MODE" \
Ronald Croncf284562024-02-16 18:54:10 +01001568 -s "No suitable PSK key exchange mode" \
1569 -S "Pre shared key found" \
1570 -s "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001571 -S "key exchange mode: psk$" \
1572 -S "key exchange mode: psk_ephemeral" \
1573 -s "key exchange mode: ephemeral"
1574
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001575requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001576requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001577requires_config_enabled MBEDTLS_SSL_SRV_C
1578requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001579requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1580requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001581run_test "TLS 1.3: O->m: all/psk_or_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001582 "$P_SRV tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001583 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1584 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1585 0 \
1586 -s "found psk key exchange modes extension" \
1587 -s "found pre_shared_key extension" \
1588 -s "Found PSK_EPHEMERAL KEX MODE" \
1589 -s "Found PSK KEX MODE" \
1590 -s "Pre shared key found" \
Ronald Croncf284562024-02-16 18:54:10 +01001591 -S "No usable PSK or ticket" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001592 -S "key exchange mode: psk$" \
1593 -S "key exchange mode: psk_ephemeral" \
1594 -s "key exchange mode: ephemeral"
1595
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001596requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001597requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001598requires_config_enabled MBEDTLS_SSL_SRV_C
1599requires_config_enabled MBEDTLS_DEBUG_C
Ronald Cron59625842022-10-17 10:36:34 +02001600requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1601requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Jerry Yu63d40e62022-08-29 20:38:39 +08001602run_test "TLS 1.3: O->m: all/psk_or_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001603 "$P_SRV tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \
Jerry Yue7b4b582022-08-25 17:53:13 +08001604 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \
1605 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \
1606 1 \
1607 -s "found psk key exchange modes extension" \
1608 -s "found pre_shared_key extension" \
1609 -s "Found PSK_EPHEMERAL KEX MODE" \
1610 -s "Found PSK KEX MODE" \
1611 -s "Invalid binder." \
1612 -S "key exchange mode: psk$" \
1613 -S "key exchange mode: psk_ephemeral" \
1614 -S "key exchange mode: ephemeral"
Jerry Yu58af2332022-09-06 11:19:31 +08001615
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001616requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001617requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001618requires_config_enabled MBEDTLS_SSL_SRV_C
1619requires_config_enabled MBEDTLS_DEBUG_C
1620requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1621requires_config_enabled PSA_WANT_ALG_ECDH
1622requires_config_enabled PSA_WANT_ECC_SECP_R1_256
Jerry Yu58af2332022-09-06 11:19:31 +08001623run_test "TLS 1.3: O->m: psk_ephemeral group(secp256r1) check, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001624 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
Jerry Yu58af2332022-09-06 11:19:31 +08001625 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups P-256 \
1626 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1627 0 \
1628 -s "write selected_group: secp256r1" \
1629 -S "key exchange mode: psk$" \
1630 -s "key exchange mode: psk_ephemeral" \
1631 -S "key exchange mode: ephemeral"
1632
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001633requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001634requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001635requires_config_enabled MBEDTLS_SSL_SRV_C
1636requires_config_enabled MBEDTLS_DEBUG_C
1637requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1638requires_config_enabled PSA_WANT_ALG_ECDH
1639requires_config_enabled PSA_WANT_ECC_SECP_R1_384
Jerry Yu58af2332022-09-06 11:19:31 +08001640run_test "TLS 1.3: O->m: psk_ephemeral group(secp384r1) check, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001641 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
Jerry Yu58af2332022-09-06 11:19:31 +08001642 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups secp384r1 \
1643 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1644 0 \
1645 -s "write selected_group: secp384r1" \
1646 -S "key exchange mode: psk$" \
1647 -s "key exchange mode: psk_ephemeral" \
1648 -S "key exchange mode: ephemeral"
1649
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001650requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001651requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001652requires_config_enabled MBEDTLS_SSL_SRV_C
1653requires_config_enabled MBEDTLS_DEBUG_C
1654requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1655requires_config_enabled PSA_WANT_ALG_ECDH
1656requires_config_enabled PSA_WANT_ECC_SECP_R1_521
Jerry Yu58af2332022-09-06 11:19:31 +08001657run_test "TLS 1.3: O->m: psk_ephemeral group(secp521r1) check, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001658 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
Jerry Yu58af2332022-09-06 11:19:31 +08001659 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups secp521r1 \
1660 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1661 0 \
1662 -s "write selected_group: secp521r1" \
1663 -S "key exchange mode: psk$" \
1664 -s "key exchange mode: psk_ephemeral" \
1665 -S "key exchange mode: ephemeral"
1666
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001667requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001668requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001669requires_config_enabled MBEDTLS_SSL_SRV_C
1670requires_config_enabled MBEDTLS_DEBUG_C
1671requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1672requires_config_enabled PSA_WANT_ALG_ECDH
1673requires_config_enabled PSA_WANT_ECC_MONTGOMERY_255
Jerry Yu58af2332022-09-06 11:19:31 +08001674run_test "TLS 1.3: O->m: psk_ephemeral group(x25519) check, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001675 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
Jerry Yu58af2332022-09-06 11:19:31 +08001676 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups X25519 \
1677 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1678 0 \
1679 -s "write selected_group: x25519" \
1680 -S "key exchange mode: psk$" \
1681 -s "key exchange mode: psk_ephemeral" \
1682 -S "key exchange mode: ephemeral"
1683
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001684requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001685requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001686requires_config_enabled MBEDTLS_SSL_SRV_C
1687requires_config_enabled MBEDTLS_DEBUG_C
1688requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1689requires_config_enabled PSA_WANT_ALG_ECDH
1690requires_config_enabled PSA_WANT_ECC_MONTGOMERY_448
Jerry Yu58af2332022-09-06 11:19:31 +08001691run_test "TLS 1.3: O->m: psk_ephemeral group(x448) check, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001692 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
Jerry Yu58af2332022-09-06 11:19:31 +08001693 "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups X448 \
1694 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
1695 0 \
1696 -s "write selected_group: x448" \
1697 -S "key exchange mode: psk$" \
1698 -s "key exchange mode: psk_ephemeral" \
1699 -S "key exchange mode: ephemeral"
Jerry Yu2db49df2022-09-21 11:03:28 +08001700
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02001701requires_openssl_tls1_3_with_compatible_ephemeral
Gilles Peskine365296a2024-09-13 14:15:46 +02001702requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001703requires_config_enabled MBEDTLS_SSL_SRV_C
1704requires_config_enabled MBEDTLS_DEBUG_C
1705requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1706requires_config_enabled PSA_WANT_ALG_ECDH
1707requires_config_enabled PSA_WANT_ECC_SECP_R1_384
Jerry Yu2db49df2022-09-21 11:03:28 +08001708run_test "TLS 1.3 O->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \
Przemek Stekiel45255e42023-06-29 13:56:36 +02001709 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef groups=secp384r1" \
Jerry Yu93706122022-09-21 22:44:24 +08001710 "$O_NEXT_CLI_NO_CERT -tls1_3 -msg -allow_no_dhe_kex -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70 -groups P-256:P-384" \
Jerry Yu2db49df2022-09-21 11:03:28 +08001711 0 \
1712 -s "write selected_group: secp384r1" \
1713 -s "HRR selected_group: secp384r1" \
1714 -S "key exchange mode: psk$" \
1715 -s "key exchange mode: psk_ephemeral" \
1716 -S "key exchange mode: ephemeral"
1717
Jerry Yu2db49df2022-09-21 11:03:28 +08001718requires_gnutls_tls1_3
1719requires_gnutls_next_no_ticket
1720requires_gnutls_next_disable_tls13_compat
Gilles Peskine365296a2024-09-13 14:15:46 +02001721requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Gilles Peskine365296a2024-09-13 14:15:46 +02001722requires_config_enabled MBEDTLS_SSL_SRV_C
1723requires_config_enabled MBEDTLS_DEBUG_C
1724requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
1725requires_config_enabled PSA_WANT_ALG_ECDH
1726requires_config_enabled PSA_WANT_ECC_SECP_R1_384
Jerry Yu2db49df2022-09-21 11:03:28 +08001727run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \
Przemek Stekiel45255e42023-06-29 13:56:36 +02001728 "$P_SRV tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef groups=secp384r1" \
Jerry Yu93706122022-09-21 22:44:24 +08001729 "$G_NEXT_CLI_NO_CERT --debug=4 --single-key-share --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1 --pskusername Client_identity --pskkey 6162636465666768696a6b6c6d6e6f70 localhost" \
Jerry Yu2db49df2022-09-21 11:03:28 +08001730 0 \
1731 -s "write selected_group: secp384r1" \
1732 -s "HRR selected_group: secp384r1" \
1733 -S "key exchange mode: psk$" \
1734 -s "key exchange mode: psk_ephemeral" \
1735 -S "key exchange mode: ephemeral"
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00001736
1737
1738# Add psk test cases for mbedtls client code
1739
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001740# MbedTls->MbedTLS kinds of tls13_kex_modes
1741# PSK mode in client
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00001742requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1743requires_config_enabled MBEDTLS_SSL_SRV_C
1744requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001745requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00001746run_test "TLS 1.3: m->m: psk/psk, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001747 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001748 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00001749 0 \
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00001750 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1751 -c "client hello, adding psk_key_exchange_modes extension" \
1752 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00001753 -c "Selected key exchange mode: psk$" \
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00001754 -c "HTTP/1.0 200 OK"
1755
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001756requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1757requires_config_enabled MBEDTLS_SSL_SRV_C
1758requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001759requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00001760run_test "TLS 1.3: m->m: psk/psk, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001761 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001762 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001763 1 \
1764 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1765 -c "client hello, adding psk_key_exchange_modes extension" \
1766 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01001767 -s "No usable PSK or ticket"
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001768
1769requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1770requires_config_enabled MBEDTLS_SSL_SRV_C
1771requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001772requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00001773run_test "TLS 1.3: m->m: psk/psk, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001774 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001775 "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001776 1 \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001777 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001778 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001779 -c "client hello, adding PSK binder list" \
1780 -s "Invalid binder."
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001781
1782requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1783requires_config_enabled MBEDTLS_SSL_SRV_C
1784requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001785requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1786requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00001787run_test "TLS 1.3: m->m: psk/psk_ephemeral, fail - no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001788 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001789 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001790 1 \
1791 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1792 -c "client hello, adding psk_key_exchange_modes extension" \
1793 -c "client hello, adding PSK binder list" \
1794 -s "ClientHello message misses mandatory extensions."
1795
1796requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1797requires_config_enabled MBEDTLS_SSL_SRV_C
1798requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001799requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1800requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00001801run_test "TLS 1.3: m->m: psk/ephemeral, fail - no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001802 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001803 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001804 1 \
1805 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1806 -c "client hello, adding psk_key_exchange_modes extension" \
1807 -c "client hello, adding PSK binder list" \
1808 -s "ClientHello message misses mandatory extensions."
1809
1810requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1811requires_config_enabled MBEDTLS_SSL_SRV_C
1812requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001813requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1814requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1815requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00001816run_test "TLS 1.3: m->m: psk/ephemeral_all, fail - no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001817 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001818 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001819 1 \
1820 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1821 -c "client hello, adding psk_key_exchange_modes extension" \
1822 -c "client hello, adding PSK binder list" \
1823 -s "ClientHello message misses mandatory extensions."
1824
1825requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1826requires_config_enabled MBEDTLS_SSL_SRV_C
1827requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001828requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1829requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00001830run_test "TLS 1.3: m->m: psk/psk_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001831 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001832 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001833 0 \
1834 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1835 -c "client hello, adding psk_key_exchange_modes extension" \
1836 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00001837 -c "Selected key exchange mode: psk$" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001838 -c "HTTP/1.0 200 OK"
1839
1840requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1841requires_config_enabled MBEDTLS_SSL_SRV_C
1842requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001843requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1844requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00001845run_test "TLS 1.3: m->m: psk/psk_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001846 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001847 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001848 1 \
1849 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1850 -c "client hello, adding psk_key_exchange_modes extension" \
1851 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01001852 -s "No usable PSK or ticket" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001853 -s "ClientHello message misses mandatory extensions."
1854
1855requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1856requires_config_enabled MBEDTLS_SSL_SRV_C
1857requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001858requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1859requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00001860run_test "TLS 1.3: m->m: psk/psk_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001861 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001862 "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001863 1 \
Xiaokang Qian89399302022-09-21 07:16:22 +00001864 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001865 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qian89399302022-09-21 07:16:22 +00001866 -c "client hello, adding PSK binder list" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001867 -s "Invalid binder."
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001868
1869requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1870requires_config_enabled MBEDTLS_SSL_SRV_C
1871requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001872requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1873requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1874requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00001875run_test "TLS 1.3: m->m: psk/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001876 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001877 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001878 0 \
1879 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1880 -c "client hello, adding psk_key_exchange_modes extension" \
1881 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00001882 -c "Selected key exchange mode: psk$" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001883 -c "HTTP/1.0 200 OK"
1884
1885requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1886requires_config_enabled MBEDTLS_SSL_SRV_C
1887requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001888requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1889requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1890requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00001891run_test "TLS 1.3: m->m: psk/all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001892 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001893 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001894 1 \
1895 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1896 -c "client hello, adding psk_key_exchange_modes extension" \
1897 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01001898 -s "No usable PSK or ticket" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001899 -s "ClientHello message misses mandatory extensions."
1900
1901requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1902requires_config_enabled MBEDTLS_SSL_SRV_C
1903requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001904requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1905requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1906requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00001907run_test "TLS 1.3: m->m: psk/all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001908 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00001909 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001910 1 \
Xiaokang Qian89399302022-09-21 07:16:22 +00001911 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001912 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qian89399302022-09-21 07:16:22 +00001913 -c "client hello, adding PSK binder list" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001914 -s "Invalid binder."
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001915
1916# psk_ephemeral mode in client
1917requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1918requires_config_enabled MBEDTLS_SSL_SRV_C
1919requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001920requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
1921requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00001922run_test "TLS 1.3: m->m: psk_ephemeral/psk, fail - no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001923 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001924 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001925 1 \
1926 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1927 -c "client hello, adding psk_key_exchange_modes extension" \
1928 -c "client hello, adding PSK binder list" \
1929 -s "ClientHello message misses mandatory extensions."
1930
1931requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1932requires_config_enabled MBEDTLS_SSL_SRV_C
1933requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001934requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00001935run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001936 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001937 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001938 0 \
1939 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1940 -c "client hello, adding psk_key_exchange_modes extension" \
1941 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00001942 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001943 -c "HTTP/1.0 200 OK"
1944
1945requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1946requires_config_enabled MBEDTLS_SSL_SRV_C
1947requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001948requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00001949run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001950 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001951 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001952 1 \
1953 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1954 -c "client hello, adding psk_key_exchange_modes extension" \
1955 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01001956 -s "No usable PSK or ticket" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001957 -s "ClientHello message misses mandatory extensions."
1958
1959requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1960requires_config_enabled MBEDTLS_SSL_SRV_C
1961requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001962requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00001963run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001964 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00001965 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001966 1 \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001967 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001968 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001969 -c "client hello, adding PSK binder list" \
1970 -s "Invalid binder."
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001971
1972requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1973requires_config_enabled MBEDTLS_SSL_SRV_C
1974requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001975requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1976requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00001977run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral, fail - no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001978 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001979 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001980 1 \
1981 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1982 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qianac8195f2022-09-26 04:01:06 +00001983 -c "client hello, adding PSK binder list"
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001984
1985requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
1986requires_config_enabled MBEDTLS_SSL_SRV_C
1987requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02001988requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
1989requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00001990run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01001991 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00001992 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001993 0 \
1994 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
1995 -c "client hello, adding psk_key_exchange_modes extension" \
1996 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00001997 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00001998 -c "HTTP/1.0 200 OK"
1999
2000requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2001requires_config_enabled MBEDTLS_SSL_SRV_C
2002requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002003requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2004requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002005run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002006 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002007 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002008 1 \
2009 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2010 -c "client hello, adding psk_key_exchange_modes extension" \
2011 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002012 -s "No usable PSK or ticket"
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002013
2014requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2015requires_config_enabled MBEDTLS_SSL_SRV_C
2016requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002017requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2018requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002019run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002020 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002021 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002022 1 \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002023 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002024 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002025 -c "client hello, adding PSK binder list" \
2026 -s "Invalid binder."
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002027
2028requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2029requires_config_enabled MBEDTLS_SSL_SRV_C
2030requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002031requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2032requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002033run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002034 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002035 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002036 0 \
2037 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2038 -c "client hello, adding psk_key_exchange_modes extension" \
2039 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002040 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002041 -c "HTTP/1.0 200 OK"
2042
2043requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2044requires_config_enabled MBEDTLS_SSL_SRV_C
2045requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002046requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2047requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002048run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002049 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002050 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002051 1 \
2052 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2053 -c "client hello, adding psk_key_exchange_modes extension" \
2054 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002055 -s "No usable PSK or ticket" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002056 -s "ClientHello message misses mandatory extensions."
2057
2058requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2059requires_config_enabled MBEDTLS_SSL_SRV_C
2060requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002061requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2062requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002063run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002064 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002065 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002066 1 \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002067 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002068 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002069 -c "client hello, adding PSK binder list" \
2070 -s "Invalid binder."
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002071
2072requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2073requires_config_enabled MBEDTLS_SSL_SRV_C
2074requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002075requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2076requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2077requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002078run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002079 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002080 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002081 0 \
2082 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2083 -c "client hello, adding psk_key_exchange_modes extension" \
2084 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002085 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002086 -c "HTTP/1.0 200 OK"
2087
2088requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2089requires_config_enabled MBEDTLS_SSL_SRV_C
2090requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002091requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2092requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2093requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002094run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002095 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002096 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002097 1 \
2098 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2099 -c "client hello, adding psk_key_exchange_modes extension" \
2100 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002101 -s "No usable PSK or ticket" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002102
2103requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2104requires_config_enabled MBEDTLS_SSL_SRV_C
2105requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002106requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2107requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2108requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002109run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002110 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002111 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002112 1 \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002113 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002114 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002115 -c "client hello, adding PSK binder list" \
2116 -s "Invalid binder."
Xiaokang Qianf9b694b2022-08-25 08:48:51 +00002117
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002118# ephemeral mode in client
2119requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2120requires_config_enabled MBEDTLS_SSL_SRV_C
2121requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002122requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2123requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002124run_test "TLS 1.3: m->m: ephemeral/psk, fail - no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002125 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002126 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002127 1 \
2128 -s "ClientHello message misses mandatory extensions."
2129
2130requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2131requires_config_enabled MBEDTLS_SSL_SRV_C
2132requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002133requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2134requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002135run_test "TLS 1.3: m->m: ephemeral/psk_ephemeral, fail - no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002136 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002137 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002138 1 \
2139 -s "ClientHello message misses mandatory extensions."
2140
2141requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2142requires_config_enabled MBEDTLS_SSL_SRV_C
2143requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002144requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002145run_test "TLS 1.3: m->m: ephemeral/ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002146 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002147 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002148 0 \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002149 -c "Selected key exchange mode: ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002150 -c "HTTP/1.0 200 OK"
2151
2152requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2153requires_config_enabled MBEDTLS_SSL_SRV_C
2154requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002155requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2156requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002157run_test "TLS 1.3: m->m: ephemeral/ephemeral_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002158 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002159 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002160 0 \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002161 -c "Selected key exchange mode: ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002162 -c "HTTP/1.0 200 OK"
2163
2164requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2165requires_config_enabled MBEDTLS_SSL_SRV_C
2166requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002167requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2168requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2169requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002170run_test "TLS 1.3: m->m: ephemeral/psk_all, fail - no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002171 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002172 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002173 1 \
2174 -s "ClientHello message misses mandatory extensions."
2175
2176requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2177requires_config_enabled MBEDTLS_SSL_SRV_C
2178requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002179requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2180requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2181requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002182run_test "TLS 1.3: m->m: ephemeral/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002183 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002184 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002185 0 \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002186 -c "Selected key exchange mode: ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002187 -c "HTTP/1.0 200 OK"
2188
2189# ephemeral_all mode in client
2190requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2191requires_config_enabled MBEDTLS_SSL_SRV_C
2192requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002193requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2194requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2195requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002196run_test "TLS 1.3: m->m: ephemeral_all/psk, fail - no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002197 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002198 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002199 1 \
2200 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2201 -c "client hello, adding psk_key_exchange_modes extension" \
2202 -c "client hello, adding PSK binder list" \
2203 -s "ClientHello message misses mandatory extensions."
2204
2205requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2206requires_config_enabled MBEDTLS_SSL_SRV_C
2207requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002208requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2209requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002210run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002211 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002212 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002213 0 \
2214 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2215 -c "client hello, adding psk_key_exchange_modes extension" \
2216 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002217 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002218 -c "HTTP/1.0 200 OK"
2219
2220requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2221requires_config_enabled MBEDTLS_SSL_SRV_C
2222requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002223requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2224requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002225run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002226 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002227 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \
Xiaokang Qian210727f2022-09-23 07:25:40 +00002228 1 \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002229 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2230 -c "client hello, adding psk_key_exchange_modes extension" \
2231 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002232 -s "No usable PSK or ticket"
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002233
2234requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2235requires_config_enabled MBEDTLS_SSL_SRV_C
2236requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002237requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2238requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002239run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002240 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002241 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
2242 1 \
2243 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002244 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002245 -c "client hello, adding PSK binder list" \
2246 -s "Invalid binder."
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002247
2248requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2249requires_config_enabled MBEDTLS_SSL_SRV_C
2250requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002251requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2252requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002253run_test "TLS 1.3: m->m: ephemeral_all/ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002254 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002255 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002256 0 \
2257 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2258 -c "client hello, adding psk_key_exchange_modes extension" \
2259 -c "client hello, adding PSK binder list" \
2260 -s "key exchange mode: ephemeral" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002261 -c "Selected key exchange mode: ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002262 -c "HTTP/1.0 200 OK"
2263
2264requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2265requires_config_enabled MBEDTLS_SSL_SRV_C
2266requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002267requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2268requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002269run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002270 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002271 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002272 0 \
2273 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2274 -c "client hello, adding psk_key_exchange_modes extension" \
2275 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002276 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002277 -c "HTTP/1.0 200 OK"
2278
2279requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2280requires_config_enabled MBEDTLS_SSL_SRV_C
2281requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002282requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2283requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002284run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,key id mismatch,fallback" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002285 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002286 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002287 0 \
2288 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2289 -c "client hello, adding psk_key_exchange_modes extension" \
2290 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002291 -s "No usable PSK or ticket" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002292 -s "key exchange mode: ephemeral"
2293
2294requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2295requires_config_enabled MBEDTLS_SSL_SRV_C
2296requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002297requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2298requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qiana70bd912022-09-28 07:50:13 +00002299run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002300 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002301 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
2302 1 \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002303 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2304 -c "client hello, adding psk_key_exchange_modes extension" \
2305 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002306 -s "Invalid binder."
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002307
2308requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2309requires_config_enabled MBEDTLS_SSL_SRV_C
2310requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002311requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2312requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2313requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002314run_test "TLS 1.3: m->m: ephemeral_all/psk_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002315 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002316 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002317 0 \
2318 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2319 -c "client hello, adding psk_key_exchange_modes extension" \
2320 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002321 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002322 -c "HTTP/1.0 200 OK"
2323
2324requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2325requires_config_enabled MBEDTLS_SSL_SRV_C
2326requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002327requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2328requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2329requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002330run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002331 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002332 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002333 1 \
2334 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2335 -c "client hello, adding psk_key_exchange_modes extension" \
2336 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002337 -s "No usable PSK or ticket" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002338 -s "ClientHello message misses mandatory extensions."
2339
2340requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2341requires_config_enabled MBEDTLS_SSL_SRV_C
2342requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002343requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2344requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2345requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002346run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002347 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002348 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002349 1 \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002350 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002351 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002352 -c "client hello, adding PSK binder list" \
2353 -s "Invalid binder."
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002354
2355requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2356requires_config_enabled MBEDTLS_SSL_SRV_C
2357requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002358requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2359requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2360requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002361run_test "TLS 1.3: m->m: ephemeral_all/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002362 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002363 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002364 0 \
2365 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2366 -c "client hello, adding psk_key_exchange_modes extension" \
2367 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002368 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002369 -c "HTTP/1.0 200 OK"
2370
2371requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2372requires_config_enabled MBEDTLS_SSL_SRV_C
2373requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002374requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2375requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2376requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002377run_test "TLS 1.3: m->m: ephemeral_all/all, good, key id mismatch, fallback" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002378 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002379 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002380 0 \
2381 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2382 -c "client hello, adding psk_key_exchange_modes extension" \
2383 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002384 -s "No usable PSK or ticket" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002385 -s "key exchange mode: ephemeral"
2386
2387requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2388requires_config_enabled MBEDTLS_SSL_SRV_C
2389requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002390requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2391requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2392requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002393run_test "TLS 1.3: m->m: ephemeral_all/all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002394 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002395 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
2396 1 \
2397 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002398 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002399 -c "client hello, adding PSK binder list" \
2400 -s "Invalid binder."
Xiaokang Qianca48ddd2022-08-29 08:25:17 +00002401
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002402# psk_all mode in client
2403requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2404requires_config_enabled MBEDTLS_SSL_SRV_C
2405requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002406requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2407requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002408run_test "TLS 1.3: m->m: psk_all/psk, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002409 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002410 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002411 0 \
2412 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2413 -c "client hello, adding psk_key_exchange_modes extension" \
2414 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002415 -c "Selected key exchange mode: psk$" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002416 -c "HTTP/1.0 200 OK"
2417
2418requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2419requires_config_enabled MBEDTLS_SSL_SRV_C
2420requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002421requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2422requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002423run_test "TLS 1.3: m->m: psk_all/psk, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002424 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002425 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002426 1 \
2427 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2428 -c "client hello, adding psk_key_exchange_modes extension" \
2429 -c "client hello, adding PSK binder list" \
2430 -s "ClientHello message misses mandatory extensions."
2431
2432requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2433requires_config_enabled MBEDTLS_SSL_SRV_C
2434requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002435requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2436requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002437run_test "TLS 1.3: m->m: psk_all/psk, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002438 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002439 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002440 1 \
2441 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2442 -c "client hello, adding psk_key_exchange_modes extension" \
2443 -c "client hello, adding PSK binder list" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002444 -s "Invalid binder."
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002445
2446requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2447requires_config_enabled MBEDTLS_SSL_SRV_C
2448requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002449requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2450requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002451run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002452 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002453 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002454 0 \
2455 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2456 -c "client hello, adding psk_key_exchange_modes extension" \
2457 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002458 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002459 -c "HTTP/1.0 200 OK"
2460
2461requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2462requires_config_enabled MBEDTLS_SSL_SRV_C
2463requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002464requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2465requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002466run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002467 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002468 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002469 1 \
2470 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2471 -c "client hello, adding psk_key_exchange_modes extension" \
2472 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002473 -s "No usable PSK or ticket" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002474 -s "ClientHello message misses mandatory extensions."
2475
2476requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2477requires_config_enabled MBEDTLS_SSL_SRV_C
2478requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002479requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2480requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002481run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002482 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qian954d5762022-09-26 08:40:10 +00002483 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002484 1 \
Xiaokang Qian954d5762022-09-26 08:40:10 +00002485 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002486 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qian954d5762022-09-26 08:40:10 +00002487 -c "client hello, adding PSK binder list" \
2488 -s "Invalid binder."
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002489
2490requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2491requires_config_enabled MBEDTLS_SSL_SRV_C
2492requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002493requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2494requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2495requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002496run_test "TLS 1.3: m->m: psk_all/ephemeral, fail - no common kex mode" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002497 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002498 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002499 1 \
2500 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2501 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qianac8195f2022-09-26 04:01:06 +00002502 -c "client hello, adding PSK binder list"
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002503
2504requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2505requires_config_enabled MBEDTLS_SSL_SRV_C
2506requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002507requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2508requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2509requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002510run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002511 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002512 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002513 0 \
2514 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2515 -c "client hello, adding psk_key_exchange_modes extension" \
2516 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002517 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002518 -c "HTTP/1.0 200 OK"
2519
2520requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2521requires_config_enabled MBEDTLS_SSL_SRV_C
2522requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002523requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2524requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2525requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002526run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002527 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002528 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002529 1 \
2530 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2531 -c "client hello, adding psk_key_exchange_modes extension" \
2532 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002533 -s "No usable PSK or ticket"
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002534
2535requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2536requires_config_enabled MBEDTLS_SSL_SRV_C
2537requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002538requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2539requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2540requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qiana70bd912022-09-28 07:50:13 +00002541run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002542 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002543 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002544 1 \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002545 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002546 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002547 -c "client hello, adding PSK binder list" \
2548 -s "Invalid binder."
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002549
2550requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2551requires_config_enabled MBEDTLS_SSL_SRV_C
2552requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002553requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2554requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002555run_test "TLS 1.3: m->m: psk_all/psk_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002556 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002557 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002558 0 \
2559 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2560 -c "client hello, adding psk_key_exchange_modes extension" \
2561 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002562 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002563 -c "HTTP/1.0 200 OK"
2564
2565requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2566requires_config_enabled MBEDTLS_SSL_SRV_C
2567requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002568requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2569requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002570run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002571 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002572 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002573 1 \
2574 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2575 -c "client hello, adding psk_key_exchange_modes extension" \
2576 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002577 -s "No usable PSK or ticket" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002578 -s "ClientHello message misses mandatory extensions."
2579
2580requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2581requires_config_enabled MBEDTLS_SSL_SRV_C
2582requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002583requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2584requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002585run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002586 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002587 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002588 1 \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002589 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002590 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002591 -c "client hello, adding PSK binder list" \
2592 -s "Invalid binder."
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002593
2594requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2595requires_config_enabled MBEDTLS_SSL_SRV_C
2596requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002597requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2598requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2599requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002600run_test "TLS 1.3: m->m: psk_all/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002601 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002602 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002603 0 \
2604 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2605 -c "client hello, adding psk_key_exchange_modes extension" \
2606 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002607 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002608 -c "HTTP/1.0 200 OK"
2609
2610requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2611requires_config_enabled MBEDTLS_SSL_SRV_C
2612requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002613requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2614requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2615requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002616run_test "TLS 1.3: m->m: psk_all/all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002617 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002618 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002619 1 \
2620 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2621 -c "client hello, adding psk_key_exchange_modes extension" \
2622 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002623 -s "No usable PSK or ticket"
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002624
2625requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2626requires_config_enabled MBEDTLS_SSL_SRV_C
2627requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002628requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2629requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2630requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002631run_test "TLS 1.3: m->m: psk_all/all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002632 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002633 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002634 1 \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002635 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002636 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002637 -c "client hello, adding PSK binder list" \
2638 -s "Invalid binder."
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002639
2640# all mode in client
2641requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2642requires_config_enabled MBEDTLS_SSL_SRV_C
2643requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002644requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2645requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2646requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002647run_test "TLS 1.3: m->m: all/psk, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002648 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002649 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002650 0 \
2651 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2652 -c "client hello, adding psk_key_exchange_modes extension" \
2653 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002654 -c "Selected key exchange mode: psk$" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002655 -c "HTTP/1.0 200 OK"
2656
2657requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2658requires_config_enabled MBEDTLS_SSL_SRV_C
2659requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002660requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2661requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2662requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002663run_test "TLS 1.3: m->m: all/psk, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002664 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002665 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002666 1 \
2667 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2668 -c "client hello, adding psk_key_exchange_modes extension" \
2669 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002670 -s "No usable PSK or ticket" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002671 -s "ClientHello message misses mandatory extensions."
2672
2673requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2674requires_config_enabled MBEDTLS_SSL_SRV_C
2675requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002676requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2677requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2678requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002679run_test "TLS 1.3: m->m: all/psk, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002680 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002681 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002682 1 \
2683 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2684 -c "client hello, adding psk_key_exchange_modes extension" \
2685 -c "client hello, adding PSK binder list" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002686 -s "Invalid binder."
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002687
2688requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2689requires_config_enabled MBEDTLS_SSL_SRV_C
2690requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002691requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2692requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2693requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002694run_test "TLS 1.3: m->m: all/psk_ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002695 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002696 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002697 0 \
2698 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2699 -c "client hello, adding psk_key_exchange_modes extension" \
2700 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002701 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002702 -c "HTTP/1.0 200 OK"
2703
2704requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2705requires_config_enabled MBEDTLS_SSL_SRV_C
2706requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002707requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2708requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2709requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002710run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002711 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002712 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002713 1 \
2714 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2715 -c "client hello, adding psk_key_exchange_modes extension" \
2716 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002717 -s "No usable PSK or ticket" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002718 -s "ClientHello message misses mandatory extensions."
2719
2720requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2721requires_config_enabled MBEDTLS_SSL_SRV_C
2722requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002723requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2724requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2725requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002726run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002727 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002728 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002729 1 \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002730 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002731 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002732 -c "client hello, adding PSK binder list" \
2733 -s "Invalid binder."
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002734
2735requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2736requires_config_enabled MBEDTLS_SSL_SRV_C
2737requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002738requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2739requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2740requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002741run_test "TLS 1.3: m->m: all/ephemeral, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002742 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002743 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002744 0 \
2745 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2746 -c "client hello, adding psk_key_exchange_modes extension" \
2747 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002748 -c "Selected key exchange mode: ephemeral" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002749 -c "HTTP/1.0 200 OK"
2750
2751requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2752requires_config_enabled MBEDTLS_SSL_SRV_C
2753requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002754requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2755requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2756requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002757run_test "TLS 1.3: m->m: all/ephemeral_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002758 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002759 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002760 0 \
2761 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2762 -c "client hello, adding psk_key_exchange_modes extension" \
2763 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002764 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002765 -c "HTTP/1.0 200 OK"
2766
2767requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2768requires_config_enabled MBEDTLS_SSL_SRV_C
2769requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002770requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2771requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2772requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002773run_test "TLS 1.3: m->m: all/ephemeral_all, good, key id mismatch, fallback" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002774 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002775 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002776 0 \
2777 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2778 -c "client hello, adding psk_key_exchange_modes extension" \
2779 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002780 -s "No usable PSK or ticket" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002781 -c "Selected key exchange mode: ephemeral" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002782 -c "HTTP/1.0 200 OK"
2783
2784requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2785requires_config_enabled MBEDTLS_SSL_SRV_C
2786requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002787requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2788requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2789requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002790run_test "TLS 1.3: m->m: all/ephemeral_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002791 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002792 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \
2793 1 \
2794 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002795 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002796 -c "client hello, adding PSK binder list" \
2797 -s "Invalid binder."
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002798
2799requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2800requires_config_enabled MBEDTLS_SSL_SRV_C
2801requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002802requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2803requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2804requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002805run_test "TLS 1.3: m->m: all/psk_all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002806 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002807 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002808 0 \
2809 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2810 -c "client hello, adding psk_key_exchange_modes extension" \
2811 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002812 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002813 -c "HTTP/1.0 200 OK"
2814
2815requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2816requires_config_enabled MBEDTLS_SSL_SRV_C
2817requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002818requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2819requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2820requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002821run_test "TLS 1.3: m->m: all/psk_all, fail, key id mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002822 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002823 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002824 1 \
2825 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2826 -c "client hello, adding psk_key_exchange_modes extension" \
2827 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002828 -s "No usable PSK or ticket" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002829 -s "ClientHello message misses mandatory extensions."
2830
2831requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2832requires_config_enabled MBEDTLS_SSL_SRV_C
2833requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002834requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2835requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2836requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002837run_test "TLS 1.3: m->m: all/psk_all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002838 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002839 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002840 1 \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002841 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002842 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002843 -c "client hello, adding PSK binder list" \
2844 -s "Invalid binder."
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002845
2846requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2847requires_config_enabled MBEDTLS_SSL_SRV_C
2848requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002849requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2850requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2851requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002852run_test "TLS 1.3: m->m: all/all, good" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002853 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002854 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002855 0 \
2856 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2857 -c "client hello, adding psk_key_exchange_modes extension" \
2858 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002859 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002860 -c "HTTP/1.0 200 OK"
2861
2862requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2863requires_config_enabled MBEDTLS_SSL_SRV_C
2864requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002865requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2866requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2867requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002868run_test "TLS 1.3: m->m: all/all, good, key id mismatch, fallback" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002869 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiancffb18c2022-09-13 01:58:07 +00002870 "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002871 0 \
2872 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2873 -c "client hello, adding psk_key_exchange_modes extension" \
2874 -c "client hello, adding PSK binder list" \
Ronald Croncf284562024-02-16 18:54:10 +01002875 -s "No usable PSK or ticket" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002876 -s "key exchange mode: ephemeral"
2877
2878requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
2879requires_config_enabled MBEDTLS_SSL_SRV_C
2880requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002881requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2882requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
2883requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian9c172042022-09-27 11:41:50 +00002884run_test "TLS 1.3: m->m: all/all, fail, key material mismatch" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002885 "$P_SRV nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002886 "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \
2887 1 \
2888 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002889 -c "client hello, adding psk_key_exchange_modes extension" \
Xiaokang Qiandea2cbe2022-09-22 11:07:28 +00002890 -c "client hello, adding PSK binder list" \
2891 -s "Invalid binder."
Xiaokang Qian8e76e1d2022-08-29 10:11:14 +00002892
Xiaokang Qian73894232022-08-23 08:06:34 +00002893#OPENSSL-SERVER psk mode
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00002894requires_openssl_tls1_3
2895requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00002896requires_config_enabled MBEDTLS_DEBUG_C
2897requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002898requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002899run_test "TLS 1.3: m->O: psk/all, good" \
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00002900 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002901 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00002902 0 \
2903 -c "=> write client hello" \
2904 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2905 -c "client hello, adding psk_key_exchange_modes extension" \
2906 -c "client hello, adding PSK binder list" \
2907 -c "<= write client hello" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002908 -c "Selected key exchange mode: psk$" \
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00002909 -c "HTTP/1.0 200 ok"
2910
2911requires_openssl_tls1_3
2912requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00002913requires_config_enabled MBEDTLS_DEBUG_C
2914requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002915requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002916run_test "TLS 1.3: m->O: psk/ephemeral_all, fail - no common kex mode" \
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00002917 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \
Ronald Cron2ea36af2022-10-17 09:37:16 +02002918 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qiane0cc5842022-08-25 06:17:36 +00002919 1 \
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00002920 -c "=> write client hello" \
2921 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2922 -c "client hello, adding psk_key_exchange_modes extension" \
2923 -c "client hello, adding PSK binder list" \
2924 -c "<= write client hello" \
Xiaokang Qiane0cc5842022-08-25 06:17:36 +00002925 -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer"
Xiaokang Qiancf6442e2022-08-23 06:47:40 +00002926
Xiaokang Qian73894232022-08-23 08:06:34 +00002927#OPENSSL-SERVER psk_all mode
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02002928requires_openssl_tls1_3_with_compatible_ephemeral
Xiaokang Qian73894232022-08-23 08:06:34 +00002929requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qian73894232022-08-23 08:06:34 +00002930requires_config_enabled MBEDTLS_DEBUG_C
2931requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002932requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2933requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002934run_test "TLS 1.3: m->O: psk_all/all, good" \
Xiaokang Qian73894232022-08-23 08:06:34 +00002935 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002936 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian73894232022-08-23 08:06:34 +00002937 0 \
2938 -c "=> write client hello" \
2939 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2940 -c "client hello, adding psk_key_exchange_modes extension" \
2941 -c "client hello, adding PSK binder list" \
2942 -c "<= write client hello" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002943 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian73894232022-08-23 08:06:34 +00002944 -c "HTTP/1.0 200 ok"
2945
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02002946requires_openssl_tls1_3_with_compatible_ephemeral
Xiaokang Qian73894232022-08-23 08:06:34 +00002947requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qian73894232022-08-23 08:06:34 +00002948requires_config_enabled MBEDTLS_DEBUG_C
2949requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002950requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
2951requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002952run_test "TLS 1.3: m->O: psk_all/ephemeral_all, good" \
Xiaokang Qian73894232022-08-23 08:06:34 +00002953 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \
Ronald Cron2ea36af2022-10-17 09:37:16 +02002954 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian73894232022-08-23 08:06:34 +00002955 0 \
2956 -c "=> write client hello" \
2957 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2958 -c "client hello, adding psk_key_exchange_modes extension" \
2959 -c "client hello, adding PSK binder list" \
2960 -c "<= write client hello" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002961 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian73894232022-08-23 08:06:34 +00002962 -c "HTTP/1.0 200 ok"
2963
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002964#OPENSSL-SERVER psk_ephemeral mode
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02002965requires_openssl_tls1_3_with_compatible_ephemeral
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002966requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002967requires_config_enabled MBEDTLS_DEBUG_C
2968requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002969requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002970run_test "TLS 1.3: m->O: psk_ephemeral/all, good" \
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002971 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01002972 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002973 0 \
2974 -c "=> write client hello" \
2975 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2976 -c "client hello, adding psk_key_exchange_modes extension" \
2977 -c "client hello, adding PSK binder list" \
2978 -c "<= write client hello" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002979 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002980 -c "HTTP/1.0 200 ok"
2981
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02002982requires_openssl_tls1_3_with_compatible_ephemeral
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002983requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002984requires_config_enabled MBEDTLS_DEBUG_C
2985requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02002986requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00002987run_test "TLS 1.3: m->O: psk_ephemeral/ephemeral_all, good" \
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002988 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \
Ronald Cron2ea36af2022-10-17 09:37:16 +02002989 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002990 0 \
2991 -c "=> write client hello" \
2992 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
2993 -c "client hello, adding psk_key_exchange_modes extension" \
2994 -c "client hello, adding PSK binder list" \
2995 -c "<= write client hello" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00002996 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qianff5705b2022-08-24 03:18:31 +00002997 -c "HTTP/1.0 200 ok"
2998
Xiaokang Qian01173c22022-08-24 06:29:05 +00002999#OPENSSL-SERVER ephemeral mode
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02003000requires_openssl_tls1_3_with_compatible_ephemeral
Xiaokang Qian01173c22022-08-24 06:29:05 +00003001requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qian01173c22022-08-24 06:29:05 +00003002requires_config_enabled MBEDTLS_DEBUG_C
3003requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003004requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003005run_test "TLS 1.3: m->O: ephemeral/all, good" \
Xiaokang Qian01173c22022-08-24 06:29:05 +00003006 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003007 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qian01173c22022-08-24 06:29:05 +00003008 0 \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003009 -c "Selected key exchange mode: ephemeral" \
Xiaokang Qian01173c22022-08-24 06:29:05 +00003010 -c "HTTP/1.0 200 ok"
3011
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02003012requires_openssl_tls1_3_with_compatible_ephemeral
Xiaokang Qian01173c22022-08-24 06:29:05 +00003013requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qian01173c22022-08-24 06:29:05 +00003014requires_config_enabled MBEDTLS_DEBUG_C
3015requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003016requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003017run_test "TLS 1.3: m->O: ephemeral/ephemeral_all, good" \
Xiaokang Qian01173c22022-08-24 06:29:05 +00003018 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \
3019 "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
3020 0 \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003021 -c "Selected key exchange mode: ephemeral" \
Xiaokang Qian01173c22022-08-24 06:29:05 +00003022 -c "HTTP/1.0 200 ok"
3023
Xiaokang Qiana39d0d52022-08-24 06:48:07 +00003024#OPENSSL-SERVER ephemeral_all mode
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02003025requires_openssl_tls1_3_with_compatible_ephemeral
Xiaokang Qiana39d0d52022-08-24 06:48:07 +00003026requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qiana39d0d52022-08-24 06:48:07 +00003027requires_config_enabled MBEDTLS_DEBUG_C
3028requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003029requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
3030requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003031run_test "TLS 1.3: m->O: ephemeral_all/all, good" \
Xiaokang Qiana39d0d52022-08-24 06:48:07 +00003032 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003033 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qiana39d0d52022-08-24 06:48:07 +00003034 0 \
3035 -c "=> write client hello" \
3036 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3037 -c "client hello, adding psk_key_exchange_modes extension" \
3038 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003039 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qiana39d0d52022-08-24 06:48:07 +00003040 -c "<= write client hello" \
3041 -c "HTTP/1.0 200 ok"
3042
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02003043requires_openssl_tls1_3_with_compatible_ephemeral
Xiaokang Qiana39d0d52022-08-24 06:48:07 +00003044requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qiana39d0d52022-08-24 06:48:07 +00003045requires_config_enabled MBEDTLS_DEBUG_C
3046requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003047requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
3048requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003049run_test "TLS 1.3: m->O: ephemeral_all/ephemeral_all, good" \
Xiaokang Qiana39d0d52022-08-24 06:48:07 +00003050 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \
3051 "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
3052 0 \
3053 -c "=> write client hello" \
3054 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3055 -c "client hello, adding psk_key_exchange_modes extension" \
3056 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003057 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qiana39d0d52022-08-24 06:48:07 +00003058 -c "<= write client hello" \
3059 -c "HTTP/1.0 200 ok"
3060
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003061#OPENSSL-SERVER all mode
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02003062requires_openssl_tls1_3_with_compatible_ephemeral
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003063requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003064requires_config_enabled MBEDTLS_DEBUG_C
3065requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003066requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
3067requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
3068requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003069run_test "TLS 1.3: m->O: all/all, good" \
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003070 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003071 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003072 0 \
3073 -c "=> write client hello" \
3074 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3075 -c "client hello, adding psk_key_exchange_modes extension" \
3076 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003077 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003078 -c "<= write client hello" \
3079 -c "HTTP/1.0 200 ok"
3080
Przemek Stekiel8bfe8972023-06-26 12:59:45 +02003081requires_openssl_tls1_3_with_compatible_ephemeral
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003082requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003083requires_config_enabled MBEDTLS_DEBUG_C
3084requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003085requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
3086requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
3087requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003088run_test "TLS 1.3: m->O: all/ephemeral_all, good" \
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003089 "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \
3090 "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
3091 0 \
3092 -c "=> write client hello" \
3093 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3094 -c "client hello, adding psk_key_exchange_modes extension" \
3095 -c "client hello, adding PSK binder list" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003096 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003097 -c "<= write client hello" \
3098 -c "HTTP/1.0 200 ok"
3099
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003100#GNUTLS-SERVER psk mode
3101requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3102requires_gnutls_tls1_3
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003103requires_config_enabled MBEDTLS_DEBUG_C
3104requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003105requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003106run_test "TLS 1.3: m->G: psk/all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003107 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003108 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003109 0 \
3110 -c "=> write client hello" \
3111 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3112 -c "client hello, adding psk_key_exchange_modes extension" \
3113 -c "client hello, adding PSK binder list" \
3114 -s "Parsing extension 'PSK Key Exchange Modes/45'" \
3115 -s "Parsing extension 'Pre Shared Key/41'" \
3116 -c "<= write client hello" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003117 -c "Selected key exchange mode: psk$" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003118 -c "HTTP/1.0 200 OK"
3119
3120requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3121requires_gnutls_tls1_3
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003122requires_config_enabled MBEDTLS_DEBUG_C
3123requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003124requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003125run_test "TLS 1.3: m->G: psk/ephemeral_all, fail - no common kex mode" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003126 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003127 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003128 1 \
3129 -c "=> write client hello" \
3130 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3131 -c "client hello, adding psk_key_exchange_modes extension" \
3132 -c "client hello, adding PSK binder list" \
3133 -s "Parsing extension 'PSK Key Exchange Modes/45'" \
3134 -s "Parsing extension 'Pre Shared Key/41'" \
3135 -c "<= write client hello" \
3136 -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer"
3137
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003138#GNUTLS-SERVER psk_all mode
3139requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3140requires_gnutls_tls1_3
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003141requires_config_enabled MBEDTLS_DEBUG_C
3142requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003143requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
3144requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003145run_test "TLS 1.3: m->G: psk_all/all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003146 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003147 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003148 0 \
3149 -c "=> write client hello" \
3150 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3151 -c "client hello, adding psk_key_exchange_modes extension" \
3152 -c "client hello, adding PSK binder list" \
3153 -s "Parsing extension 'PSK Key Exchange Modes/45'" \
3154 -s "Parsing extension 'Pre Shared Key/41'" \
3155 -c "<= write client hello" \
Ronald Crona709a0f2022-09-27 16:46:11 +02003156 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003157 -c "HTTP/1.0 200 OK"
3158
3159requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3160requires_gnutls_tls1_3
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003161requires_config_enabled MBEDTLS_DEBUG_C
3162requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003163requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
3164requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Ronald Crona709a0f2022-09-27 16:46:11 +02003165run_test "TLS 1.3: m->G: psk_all/ephemeral_all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003166 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003167 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \
Ronald Crona709a0f2022-09-27 16:46:11 +02003168 0 \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003169 -c "=> write client hello" \
3170 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3171 -c "client hello, adding psk_key_exchange_modes extension" \
3172 -c "client hello, adding PSK binder list" \
3173 -s "Parsing extension 'PSK Key Exchange Modes/45'" \
3174 -s "Parsing extension 'Pre Shared Key/41'" \
3175 -c "<= write client hello" \
Ronald Crona709a0f2022-09-27 16:46:11 +02003176 -c "Selected key exchange mode: psk_ephemeral" \
3177 -c "HTTP/1.0 200 OK"
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003178
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003179#GNUTLS-SERVER psk_ephemeral mode
3180requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3181requires_gnutls_tls1_3
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003182requires_config_enabled MBEDTLS_DEBUG_C
3183requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003184requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003185run_test "TLS 1.3: m->G: psk_ephemeral/all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003186 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003187 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003188 0 \
3189 -c "=> write client hello" \
3190 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3191 -c "client hello, adding psk_key_exchange_modes extension" \
3192 -c "client hello, adding PSK binder list" \
3193 -s "Parsing extension 'PSK Key Exchange Modes/45'" \
3194 -s "Parsing extension 'Pre Shared Key/41'" \
3195 -c "<= write client hello" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003196 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003197 -c "HTTP/1.0 200 OK"
3198
3199requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3200requires_gnutls_tls1_3
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003201requires_config_enabled MBEDTLS_DEBUG_C
3202requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003203requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003204run_test "TLS 1.3: m->G: psk_ephemeral/ephemeral_all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003205 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003206 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003207 0 \
3208 -c "=> write client hello" \
3209 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3210 -c "client hello, adding psk_key_exchange_modes extension" \
3211 -c "client hello, adding PSK binder list" \
3212 -s "Parsing extension 'PSK Key Exchange Modes/45'" \
3213 -s "Parsing extension 'Pre Shared Key/41'" \
3214 -c "<= write client hello" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003215 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003216 -c "HTTP/1.0 200 OK"
3217
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003218#GNUTLS-SERVER ephemeral mode
3219requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3220requires_gnutls_tls1_3
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003221requires_config_enabled MBEDTLS_DEBUG_C
3222requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003223requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003224run_test "TLS 1.3: m->G: ephemeral/all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003225 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003226 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003227 0 \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003228 -c "Selected key exchange mode: ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003229 -c "HTTP/1.0 200 OK"
3230
3231requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3232requires_gnutls_tls1_3
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003233requires_config_enabled MBEDTLS_DEBUG_C
3234requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003235requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003236run_test "TLS 1.3: m->G: ephemeral/ephemeral_all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003237 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003238 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003239 0 \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003240 -c "Selected key exchange mode: ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003241 -c "HTTP/1.0 200 OK"
3242
3243#GNUTLS-SERVER ephemeral_all mode
3244requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3245requires_gnutls_tls1_3
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003246requires_config_enabled MBEDTLS_DEBUG_C
3247requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003248requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
3249requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003250run_test "TLS 1.3: m->G: ephemeral_all/all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003251 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003252 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003253 0 \
3254 -c "=> write client hello" \
3255 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3256 -c "client hello, adding psk_key_exchange_modes extension" \
3257 -c "client hello, adding PSK binder list" \
3258 -s "Parsing extension 'PSK Key Exchange Modes/45'" \
3259 -s "Parsing extension 'Pre Shared Key/41'" \
3260 -c "<= write client hello" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003261 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003262 -c "HTTP/1.0 200 OK"
3263
3264requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3265requires_gnutls_tls1_3
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003266requires_config_enabled MBEDTLS_DEBUG_C
3267requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003268requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
3269requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003270run_test "TLS 1.3: m->G: ephemeral_all/ephemeral_all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003271 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003272 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003273 0 \
3274 -c "=> write client hello" \
3275 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3276 -c "client hello, adding psk_key_exchange_modes extension" \
3277 -c "client hello, adding PSK binder list" \
3278 -s "Parsing extension 'PSK Key Exchange Modes/45'" \
3279 -s "Parsing extension 'Pre Shared Key/41'" \
3280 -c "<= write client hello" \
Xiaokang Qianca343ae2022-09-28 02:07:54 +00003281 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qian2aaf1c12022-08-30 09:18:59 +00003282 -c "HTTP/1.0 200 OK"
3283
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003284#GNUTLS-SERVER all mode
3285requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3286requires_gnutls_tls1_3
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003287requires_config_enabled MBEDTLS_DEBUG_C
3288requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003289requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
3290requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
3291requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003292run_test "TLS 1.3: m->G: all/all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003293 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003294 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003295 0 \
3296 -c "=> write client hello" \
3297 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3298 -c "client hello, adding psk_key_exchange_modes extension" \
3299 -c "client hello, adding PSK binder list" \
3300 -s "Parsing extension 'PSK Key Exchange Modes/45'" \
3301 -s "Parsing extension 'Pre Shared Key/41'" \
3302 -c "<= write client hello" \
Ronald Crona709a0f2022-09-27 16:46:11 +02003303 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003304 -c "HTTP/1.0 200 OK"
3305
3306requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
3307requires_gnutls_tls1_3
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003308requires_config_enabled MBEDTLS_DEBUG_C
3309requires_config_enabled MBEDTLS_SSL_CLI_C
Ronald Cron59625842022-10-17 10:36:34 +02003310requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
3311requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
3312requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
Xiaokang Qian8f7d7c72022-09-07 10:10:16 +00003313run_test "TLS 1.3: m->G: all/ephemeral_all, good" \
David Horstmann9c4dd4e2024-06-11 17:44:00 +01003314 "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=../framework/data_files/simplepass.psk" \
Ronald Cron50ae84e2023-03-14 08:59:56 +01003315 "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003316 0 \
3317 -c "=> write client hello" \
3318 -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \
3319 -c "client hello, adding psk_key_exchange_modes extension" \
3320 -c "client hello, adding PSK binder list" \
3321 -s "Parsing extension 'PSK Key Exchange Modes/45'" \
3322 -s "Parsing extension 'Pre Shared Key/41'" \
3323 -c "<= write client hello" \
Ronald Crona709a0f2022-09-27 16:46:11 +02003324 -c "Selected key exchange mode: psk_ephemeral" \
Xiaokang Qiandf6a3892022-08-24 06:55:18 +00003325 -c "HTTP/1.0 200 OK"