Merge pull request #6259 from yuhaoth/pr/add-psk_ephemeral-possible-group-tests
TLS 1.3: PSK: Add possible group tests for psk with ECDHE
This commit is contained in:
commit
208257b39f
2 changed files with 149 additions and 0 deletions
|
@ -1674,6 +1674,10 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl,
|
||||||
|
|
||||||
MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding key share extension" ) );
|
MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding key share extension" ) );
|
||||||
|
|
||||||
|
MBEDTLS_SSL_DEBUG_MSG( 2, ( "server hello, write selected_group: %s (%04x)",
|
||||||
|
mbedtls_ssl_named_group_to_str( group ),
|
||||||
|
group ) );
|
||||||
|
|
||||||
/* Check if we have space for header and length fields:
|
/* Check if we have space for header and length fields:
|
||||||
* - extension_type (2 bytes)
|
* - extension_type (2 bytes)
|
||||||
* - extension_data_length (2 bytes)
|
* - extension_data_length (2 bytes)
|
||||||
|
|
|
@ -882,6 +882,81 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, fail, key materia
|
||||||
-S "key exchange mode: psk_ephemeral" \
|
-S "key exchange mode: psk_ephemeral" \
|
||||||
-S "key exchange mode: ephemeral"
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
|
requires_gnutls_tls1_3
|
||||||
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
run_test "TLS 1.3: G->m: psk_ephemeral group(secp256r1) check, good" \
|
||||||
|
"$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
"$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1 \
|
||||||
|
--pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
|
||||||
|
localhost" \
|
||||||
|
0 \
|
||||||
|
-s "write selected_group: secp256r1" \
|
||||||
|
-S "key exchange mode: psk$" \
|
||||||
|
-s "key exchange mode: psk_ephemeral" \
|
||||||
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
|
requires_gnutls_tls1_3
|
||||||
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
run_test "TLS 1.3: G->m: psk_ephemeral group(secp384r1) check, good" \
|
||||||
|
"$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
"$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1 \
|
||||||
|
--pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
|
||||||
|
localhost" \
|
||||||
|
0 \
|
||||||
|
-s "write selected_group: secp384r1" \
|
||||||
|
-S "key exchange mode: psk$" \
|
||||||
|
-s "key exchange mode: psk_ephemeral" \
|
||||||
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
|
requires_gnutls_tls1_3
|
||||||
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
run_test "TLS 1.3: G->m: psk_ephemeral group(secp521r1) check, good" \
|
||||||
|
"$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
"$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1 \
|
||||||
|
--pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
|
||||||
|
localhost" \
|
||||||
|
0 \
|
||||||
|
-s "write selected_group: secp521r1" \
|
||||||
|
-S "key exchange mode: psk$" \
|
||||||
|
-s "key exchange mode: psk_ephemeral" \
|
||||||
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
|
requires_gnutls_tls1_3
|
||||||
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
run_test "TLS 1.3: G->m: psk_ephemeral group(x25519) check, good" \
|
||||||
|
"$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
"$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519 \
|
||||||
|
--pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
|
||||||
|
localhost" \
|
||||||
|
0 \
|
||||||
|
-s "write selected_group: x25519" \
|
||||||
|
-S "key exchange mode: psk$" \
|
||||||
|
-s "key exchange mode: psk_ephemeral" \
|
||||||
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
|
requires_gnutls_tls1_3
|
||||||
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
run_test "TLS 1.3: G->m: psk_ephemeral group(x448) check, good" \
|
||||||
|
"$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
"$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X448 \
|
||||||
|
--pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \
|
||||||
|
localhost" \
|
||||||
|
0 \
|
||||||
|
-s "write selected_group: x448" \
|
||||||
|
-S "key exchange mode: psk$" \
|
||||||
|
-s "key exchange mode: psk_ephemeral" \
|
||||||
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
requires_openssl_tls1_3
|
requires_openssl_tls1_3
|
||||||
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
@ -1445,3 +1520,73 @@ run_test "TLS 1.3: O->m: all/psk_or_ephemeral, fail, key material mismatch" \
|
||||||
-S "key exchange mode: psk$" \
|
-S "key exchange mode: psk$" \
|
||||||
-S "key exchange mode: psk_ephemeral" \
|
-S "key exchange mode: psk_ephemeral" \
|
||||||
-S "key exchange mode: ephemeral"
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
|
requires_openssl_tls1_3
|
||||||
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
run_test "TLS 1.3: O->m: psk_ephemeral group(secp256r1) check, good" \
|
||||||
|
"$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
"$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups P-256 \
|
||||||
|
-psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
0 \
|
||||||
|
-s "write selected_group: secp256r1" \
|
||||||
|
-S "key exchange mode: psk$" \
|
||||||
|
-s "key exchange mode: psk_ephemeral" \
|
||||||
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
|
requires_openssl_tls1_3
|
||||||
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
run_test "TLS 1.3: O->m: psk_ephemeral group(secp384r1) check, good" \
|
||||||
|
"$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
"$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups secp384r1 \
|
||||||
|
-psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
0 \
|
||||||
|
-s "write selected_group: secp384r1" \
|
||||||
|
-S "key exchange mode: psk$" \
|
||||||
|
-s "key exchange mode: psk_ephemeral" \
|
||||||
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
|
requires_openssl_tls1_3
|
||||||
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
run_test "TLS 1.3: O->m: psk_ephemeral group(secp521r1) check, good" \
|
||||||
|
"$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
"$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups secp521r1 \
|
||||||
|
-psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
0 \
|
||||||
|
-s "write selected_group: secp521r1" \
|
||||||
|
-S "key exchange mode: psk$" \
|
||||||
|
-s "key exchange mode: psk_ephemeral" \
|
||||||
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
|
requires_openssl_tls1_3
|
||||||
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
run_test "TLS 1.3: O->m: psk_ephemeral group(x25519) check, good" \
|
||||||
|
"$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
"$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups X25519 \
|
||||||
|
-psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
0 \
|
||||||
|
-s "write selected_group: x25519" \
|
||||||
|
-S "key exchange mode: psk$" \
|
||||||
|
-s "key exchange mode: psk_ephemeral" \
|
||||||
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
||||||
|
requires_openssl_tls1_3
|
||||||
|
requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
||||||
|
run_test "TLS 1.3: O->m: psk_ephemeral group(x448) check, good" \
|
||||||
|
"$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
"$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups X448 \
|
||||||
|
-psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \
|
||||||
|
0 \
|
||||||
|
-s "write selected_group: x448" \
|
||||||
|
-S "key exchange mode: psk$" \
|
||||||
|
-s "key exchange mode: psk_ephemeral" \
|
||||||
|
-S "key exchange mode: ephemeral"
|
||||||
|
|
Loading…
Reference in a new issue