Add FFDH tests to ssl-opt

Add FFDH support to the test case generator script: generate_tls13_compat_tests.py.
Add dependency for openssl as FFDH is supported from version 3.0.

Signed-off-by: Przemek Stekiel <przemyslaw.stekiel@mobica.com>
diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh
index 9b8c477..155ed6a 100755
--- a/tests/ssl-opt.sh
+++ b/tests/ssl-opt.sh
@@ -688,6 +688,25 @@
     fi
 }
 
+# skip next test if openssl version is lower than 3.0
+requires_openssl_3_x() {
+    requires_openssl_next
+    if [ "$OPENSSL_NEXT_AVAILABLE" = "NO" ]; then
+        OPENSSL_3_X_AVAILABLE="NO"
+    fi
+    if [ -z "${OPENSSL_3_X_AVAILABLE:-}" ]; then
+        if which $OPENSSL_NEXT 2>&1 | grep openssl-3 >/dev/null
+        then
+            OPENSSL_3_X_AVAILABLE="YES"
+        else
+            OPENSSL_3_X_AVAILABLE="NO"
+        fi
+    fi
+    if [ "$OPENSSL_3_X_AVAILABLE" = "NO" ]; then
+        SKIP_NEXT="YES"
+    fi
+}
+
 # skip next test if tls1_3 is not available
 requires_gnutls_tls1_3() {
     requires_gnutls_next
@@ -12348,109 +12367,6 @@
             -s "parse ServerName extension" \
             -s "HTTP/1.0 200 OK"
 
-requires_config_enabled MBEDTLS_DEBUG_C
-requires_config_enabled MBEDTLS_SSL_CLI_C
-requires_config_enabled MBEDTLS_SSL_SRV_C
-requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
-requires_config_enabled PSA_WANT_ALG_FFDH
-requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
-run_test "TLS 1.3: Test ffdh groups (ffdhe2048)" \
-         "$P_SRV debug_level=5 force_version=tls13 curves=ffdhe2048" \
-         "$P_CLI debug_level=5 force_version=tls13 curves=ffdhe2048" \
-         0 \
-        -s "ECDH/FFDH group: ffdhe2048" \
-        -c "HTTP/1.0 200 OK" \
-        -S "error" \
-        -C "error"
-
-requires_config_enabled MBEDTLS_DEBUG_C
-requires_config_enabled MBEDTLS_SSL_CLI_C
-requires_config_enabled MBEDTLS_SSL_SRV_C
-requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
-requires_config_enabled PSA_WANT_ALG_FFDH
-requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
-run_test "TLS 1.3: Test ffdh groups (ffdhe3072)" \
-         "$P_SRV debug_level=4 force_version=tls13 curves=ffdhe3072" \
-         "$P_CLI debug_level=4 force_version=tls13 curves=ffdhe3072" \
-         0 \
-        -s "ECDH/FFDH group: ffdhe3072" \
-        -c "HTTP/1.0 200 OK" \
-        -S "error" \
-        -C "error"
-
-requires_config_enabled MBEDTLS_DEBUG_C
-requires_config_enabled MBEDTLS_SSL_CLI_C
-requires_config_enabled MBEDTLS_SSL_SRV_C
-requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
-requires_config_enabled PSA_WANT_ALG_FFDH
-requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
-run_test "TLS 1.3: Test ffdh groups (ffdhe4096)" \
-         "$P_SRV debug_level=4 force_version=tls13 curves=ffdhe4096" \
-         "$P_CLI debug_level=4 force_version=tls13 curves=ffdhe4096" \
-         0 \
-        -s "ECDH/FFDH group: ffdhe4096" \
-        -c "HTTP/1.0 200 OK" \
-        -S "error" \
-        -C "error"
-
-requires_config_enabled MBEDTLS_DEBUG_C
-requires_config_enabled MBEDTLS_SSL_CLI_C
-requires_config_enabled MBEDTLS_SSL_SRV_C
-requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
-requires_config_enabled PSA_WANT_ALG_FFDH
-requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
-run_test "TLS 1.3: Test ffdh groups (ffdhe6144)" \
-         "$P_SRV debug_level=4 force_version=tls13 curves=ffdhe6144" \
-         "$P_CLI debug_level=4 force_version=tls13 curves=ffdhe6144" \
-         0 \
-        -s "ECDH/FFDH group: ffdhe6144" \
-        -c "HTTP/1.0 200 OK" \
-        -S "error" \
-        -C "error"
-
-requires_config_enabled MBEDTLS_DEBUG_C
-requires_config_enabled MBEDTLS_SSL_CLI_C
-requires_config_enabled MBEDTLS_SSL_SRV_C
-requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
-requires_config_enabled PSA_WANT_ALG_FFDH
-requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
-run_test "TLS 1.3: Test ffdh groups (ffdhe8192)" \
-         "$P_SRV debug_level=4 force_version=tls13 curves=ffdhe8192" \
-         "$P_CLI debug_level=4 force_version=tls13 curves=ffdhe8192" \
-         0 \
-        -s "ECDH/FFDH group: ffdhe8192" \
-        -c "HTTP/1.0 200 OK" \
-        -S "error" \
-        -C "error"
-
-requires_config_enabled MBEDTLS_DEBUG_C
-requires_config_enabled MBEDTLS_SSL_CLI_C
-requires_config_enabled MBEDTLS_SSL_SRV_C
-requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
-requires_config_enabled PSA_WANT_ALG_FFDH
-requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
-run_test "TLS 1.3: Test ffdh groups - no match(server: ffdhe2048 client: secp384r1)" \
-         "$P_SRV debug_level=4 force_version=tls13 curves=ffdhe2048" \
-         "$P_CLI debug_level=4 force_version=tls13 curves=secp384r1" \
-         1 \
-        -s "no matching named group found" \
-        -s "error" \
-        -c "error"
-
-requires_config_enabled MBEDTLS_DEBUG_C
-requires_config_enabled MBEDTLS_SSL_CLI_C
-requires_config_enabled MBEDTLS_SSL_SRV_C
-requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3
-requires_config_enabled PSA_WANT_ALG_FFDH
-requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
-run_test "TLS 1.3: Test ffdh groups - no match(server: secp384r1 client: ffdhe2048)" \
-         "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1" \
-         "$P_CLI debug_level=4 force_version=tls13 curves=ffdhe2048" \
-         1 \
-        -s "no matching named group found" \
-        -s "error" \
-        -c "error"
-
 for i in opt-testcases/*.sh
 do
     TEST_SUITE_NAME=${i##*/}