diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index 4b3799f..d64675d 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -1215,6 +1215,9 @@
                 opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL;
             } else if (strcmp(q, "all") == 0) {
                 opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL;
+            } else if (strcmp(q, "psk_or_ephemeral") == 0) {
+                opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK |
+                                      MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL;
             } else {
                 goto usage;
             }
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index 90a13eb..b3d9f5a 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -1412,7 +1412,7 @@
         return ret;
     }
 
-    switch (opt.dummy_ticket % 7) {
+    switch (opt.dummy_ticket % 11) {
         case 1:
             return MBEDTLS_ERR_SSL_INVALID_MAC;
         case 2:
@@ -1432,6 +1432,20 @@
             session->ticket_age_add -= 1000;
 #endif
             break;
+#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
+        case 7:
+            session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_NONE;
+            break;
+        case 8:
+            session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK;
+            break;
+        case 9:
+            session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL;
+            break;
+        case 10:
+            session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL;
+            break;
+#endif
         default:
             break;
     }
diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh
index 3aaf3f3..48d5e78 100755
--- a/tests/opt-testcases/tls13-misc.sh
+++ b/tests/opt-testcases/tls13-misc.sh
@@ -323,3 +323,66 @@
             -c "EncryptedExtensions: early_data(42) extension received." \
             -c "EncryptedExtensions: early_data(42) extension ( ignored )."
 
+get_resumption_with_ticket_flags_criteria()
+{
+    ticket_flags=$1
+    psk_modes=$2
+    if [ "$ticket_flags" = "none" ] || \
+       ( [ "$psk_modes" != "psk_all" ] && \
+         [ "$ticket_flags" != "psk_all" ] && \
+         [ "$psk_modes" != "$ticket_flags" ] );
+    then
+        # ticket_flags is incompatible with the psk_kex_modes
+        echo ' -c "Pre-configured PSK number = 1"' \
+             ' -S "sent selected_identity:"' \
+             ' -s "key exchange mode: ephemeral"' \
+             ' -S "key exchange mode: psk_ephemeral"' \
+             ' -S "key exchange mode: psk$"' \
+             ' -s "No suitable key exchange mode"' \
+             ' -s "No matched PSK or ticket"'
+    else
+        # ticket_flags is compatible with the psk_kex_modes
+        echo ' -c "Pre-configured PSK number = 1"' \
+             ' -S "No suitable key exchange mode"' \
+             ' -s "found matched identity"'
+    fi
+}
+
+run_tests_tls13_resumption_with_ticket_flags()
+{
+    # all tests in this sequence requires the same configuration.
+    SKIP_THIS_TESTS="$SKIP_NEXT"
+
+    DUMMY_TICKET_BASE=6
+    TLS13_KEX_MODES="ephemeral:psk_or_ephemeral:ephemeral_all:all"
+    PSK_KEX_MODES="none:psk:psk_ephemeral:psk_all"
+
+    for m in $(seq 4); do
+        kex_mode="$(echo "$TLS13_KEX_MODES" | cut -d ":" -f "$m")"
+        # ephemeral only mode doesn't support resumption
+        if [ "$kex_mode" = "ephemeral" ]; then continue; fi
+
+        for n in $(seq 4); do
+            supported_psk_modes="$(echo "$PSK_KEX_MODES" | cut -d ":" -f "$m")"
+            dummy_ticket_flags="$(echo "$PSK_KEX_MODES" | cut -d ":" -f "$n")"
+
+            eval "set -- $(get_resumption_with_ticket_flags_criteria "$dummy_ticket_flags" "$supported_psk_modes")"
+
+            SKIP_NEXT="$SKIP_THIS_TESTS"
+            run_test "TLS 1.3 m->m: Resumption with ticket flags, $supported_psk_modes->$dummy_ticket_flags." \
+                     "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=$((n + DUMMY_TICKET_BASE))" \
+                     "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=$kex_mode reconnect=1" \
+                     0 \
+                     "$@"
+        done
+    done
+}
+
+requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \
+                             MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_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_tests_tls13_resumption_with_ticket_flags
+
