1*62c56f98SSadaf Ebrahimi#!/bin/sh 2*62c56f98SSadaf Ebrahimi 3*62c56f98SSadaf Ebrahimi# ssl-opt.sh 4*62c56f98SSadaf Ebrahimi# 5*62c56f98SSadaf Ebrahimi# Copyright The Mbed TLS Contributors 6*62c56f98SSadaf Ebrahimi# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 7*62c56f98SSadaf Ebrahimi# 8*62c56f98SSadaf Ebrahimi# Purpose 9*62c56f98SSadaf Ebrahimi# 10*62c56f98SSadaf Ebrahimi# Executes tests to prove various TLS/SSL options and extensions. 11*62c56f98SSadaf Ebrahimi# 12*62c56f98SSadaf Ebrahimi# The goal is not to cover every ciphersuite/version, but instead to cover 13*62c56f98SSadaf Ebrahimi# specific options (max fragment length, truncated hmac, etc) or procedures 14*62c56f98SSadaf Ebrahimi# (session resumption from cache or ticket, renego, etc). 15*62c56f98SSadaf Ebrahimi# 16*62c56f98SSadaf Ebrahimi# The tests assume a build with default options, with exceptions expressed 17*62c56f98SSadaf Ebrahimi# with a dependency. The tests focus on functionality and do not consider 18*62c56f98SSadaf Ebrahimi# performance. 19*62c56f98SSadaf Ebrahimi# 20*62c56f98SSadaf Ebrahimi 21*62c56f98SSadaf Ebrahimiset -u 22*62c56f98SSadaf Ebrahimi 23*62c56f98SSadaf Ebrahimi# Limit the size of each log to 10 GiB, in case of failures with this script 24*62c56f98SSadaf Ebrahimi# where it may output seemingly unlimited length error logs. 25*62c56f98SSadaf Ebrahimiulimit -f 20971520 26*62c56f98SSadaf Ebrahimi 27*62c56f98SSadaf EbrahimiORIGINAL_PWD=$PWD 28*62c56f98SSadaf Ebrahimiif ! cd "$(dirname "$0")"; then 29*62c56f98SSadaf Ebrahimi exit 125 30*62c56f98SSadaf Ebrahimifi 31*62c56f98SSadaf Ebrahimi 32*62c56f98SSadaf Ebrahimi# default values, can be overridden by the environment 33*62c56f98SSadaf Ebrahimi: ${P_SRV:=../programs/ssl/ssl_server2} 34*62c56f98SSadaf Ebrahimi: ${P_CLI:=../programs/ssl/ssl_client2} 35*62c56f98SSadaf Ebrahimi: ${P_PXY:=../programs/test/udp_proxy} 36*62c56f98SSadaf Ebrahimi: ${P_QUERY:=../programs/test/query_compile_time_config} 37*62c56f98SSadaf Ebrahimi: ${OPENSSL:=openssl} 38*62c56f98SSadaf Ebrahimi: ${GNUTLS_CLI:=gnutls-cli} 39*62c56f98SSadaf Ebrahimi: ${GNUTLS_SERV:=gnutls-serv} 40*62c56f98SSadaf Ebrahimi: ${PERL:=perl} 41*62c56f98SSadaf Ebrahimi 42*62c56f98SSadaf Ebrahimi# The OPENSSL variable used to be OPENSSL_CMD for historical reasons. 43*62c56f98SSadaf Ebrahimi# To help the migration, error out if the old variable is set, 44*62c56f98SSadaf Ebrahimi# but only if it has a different value than the new one. 45*62c56f98SSadaf Ebrahimiif [ "${OPENSSL_CMD+set}" = set ]; then 46*62c56f98SSadaf Ebrahimi # the variable is set, we can now check its value 47*62c56f98SSadaf Ebrahimi if [ "$OPENSSL_CMD" != "$OPENSSL" ]; then 48*62c56f98SSadaf Ebrahimi echo "Please use OPENSSL instead of OPENSSL_CMD." >&2 49*62c56f98SSadaf Ebrahimi exit 125 50*62c56f98SSadaf Ebrahimi fi 51*62c56f98SSadaf Ebrahimifi 52*62c56f98SSadaf Ebrahimi 53*62c56f98SSadaf Ebrahimiguess_config_name() { 54*62c56f98SSadaf Ebrahimi if git diff --quiet ../include/mbedtls/mbedtls_config.h 2>/dev/null; then 55*62c56f98SSadaf Ebrahimi echo "default" 56*62c56f98SSadaf Ebrahimi else 57*62c56f98SSadaf Ebrahimi echo "unknown" 58*62c56f98SSadaf Ebrahimi fi 59*62c56f98SSadaf Ebrahimi} 60*62c56f98SSadaf Ebrahimi: ${MBEDTLS_TEST_OUTCOME_FILE=} 61*62c56f98SSadaf Ebrahimi: ${MBEDTLS_TEST_CONFIGURATION:="$(guess_config_name)"} 62*62c56f98SSadaf Ebrahimi: ${MBEDTLS_TEST_PLATFORM:="$(uname -s | tr -c \\n0-9A-Za-z _)-$(uname -m | tr -c \\n0-9A-Za-z _)"} 63*62c56f98SSadaf Ebrahimi 64*62c56f98SSadaf EbrahimiO_SRV="$OPENSSL s_server -www -cert data_files/server5.crt -key data_files/server5.key" 65*62c56f98SSadaf EbrahimiO_CLI="echo 'GET / HTTP/1.0' | $OPENSSL s_client" 66*62c56f98SSadaf EbrahimiG_SRV="$GNUTLS_SERV --x509certfile data_files/server5.crt --x509keyfile data_files/server5.key" 67*62c56f98SSadaf EbrahimiG_CLI="echo 'GET / HTTP/1.0' | $GNUTLS_CLI --x509cafile data_files/test-ca_cat12.crt" 68*62c56f98SSadaf EbrahimiTCP_CLIENT="$PERL scripts/tcp_client.pl" 69*62c56f98SSadaf Ebrahimi 70*62c56f98SSadaf Ebrahimi# alternative versions of OpenSSL and GnuTLS (no default path) 71*62c56f98SSadaf Ebrahimi 72*62c56f98SSadaf Ebrahimiif [ -n "${OPENSSL_LEGACY:-}" ]; then 73*62c56f98SSadaf Ebrahimi O_LEGACY_SRV="$OPENSSL_LEGACY s_server -www -cert data_files/server5.crt -key data_files/server5.key" 74*62c56f98SSadaf Ebrahimi O_LEGACY_CLI="echo 'GET / HTTP/1.0' | $OPENSSL_LEGACY s_client" 75*62c56f98SSadaf Ebrahimielse 76*62c56f98SSadaf Ebrahimi O_LEGACY_SRV=false 77*62c56f98SSadaf Ebrahimi O_LEGACY_CLI=false 78*62c56f98SSadaf Ebrahimifi 79*62c56f98SSadaf Ebrahimi 80*62c56f98SSadaf Ebrahimiif [ -n "${OPENSSL_NEXT:-}" ]; then 81*62c56f98SSadaf Ebrahimi O_NEXT_SRV="$OPENSSL_NEXT s_server -www -cert data_files/server5.crt -key data_files/server5.key" 82*62c56f98SSadaf Ebrahimi O_NEXT_SRV_EARLY_DATA="$OPENSSL_NEXT s_server -early_data -cert data_files/server5.crt -key data_files/server5.key" 83*62c56f98SSadaf Ebrahimi O_NEXT_SRV_NO_CERT="$OPENSSL_NEXT s_server -www " 84*62c56f98SSadaf Ebrahimi O_NEXT_CLI="echo 'GET / HTTP/1.0' | $OPENSSL_NEXT s_client -CAfile data_files/test-ca_cat12.crt" 85*62c56f98SSadaf Ebrahimi O_NEXT_CLI_NO_CERT="echo 'GET / HTTP/1.0' | $OPENSSL_NEXT s_client" 86*62c56f98SSadaf Ebrahimielse 87*62c56f98SSadaf Ebrahimi O_NEXT_SRV=false 88*62c56f98SSadaf Ebrahimi O_NEXT_SRV_NO_CERT=false 89*62c56f98SSadaf Ebrahimi O_NEXT_SRV_EARLY_DATA=false 90*62c56f98SSadaf Ebrahimi O_NEXT_CLI_NO_CERT=false 91*62c56f98SSadaf Ebrahimi O_NEXT_CLI=false 92*62c56f98SSadaf Ebrahimifi 93*62c56f98SSadaf Ebrahimi 94*62c56f98SSadaf Ebrahimiif [ -n "${GNUTLS_NEXT_SERV:-}" ]; then 95*62c56f98SSadaf Ebrahimi G_NEXT_SRV="$GNUTLS_NEXT_SERV --x509certfile data_files/server5.crt --x509keyfile data_files/server5.key" 96*62c56f98SSadaf Ebrahimi G_NEXT_SRV_NO_CERT="$GNUTLS_NEXT_SERV" 97*62c56f98SSadaf Ebrahimielse 98*62c56f98SSadaf Ebrahimi G_NEXT_SRV=false 99*62c56f98SSadaf Ebrahimi G_NEXT_SRV_NO_CERT=false 100*62c56f98SSadaf Ebrahimifi 101*62c56f98SSadaf Ebrahimi 102*62c56f98SSadaf Ebrahimiif [ -n "${GNUTLS_NEXT_CLI:-}" ]; then 103*62c56f98SSadaf Ebrahimi G_NEXT_CLI="echo 'GET / HTTP/1.0' | $GNUTLS_NEXT_CLI --x509cafile data_files/test-ca_cat12.crt" 104*62c56f98SSadaf Ebrahimi G_NEXT_CLI_NO_CERT="echo 'GET / HTTP/1.0' | $GNUTLS_NEXT_CLI" 105*62c56f98SSadaf Ebrahimielse 106*62c56f98SSadaf Ebrahimi G_NEXT_CLI=false 107*62c56f98SSadaf Ebrahimi G_NEXT_CLI_NO_CERT=false 108*62c56f98SSadaf Ebrahimifi 109*62c56f98SSadaf Ebrahimi 110*62c56f98SSadaf EbrahimiTESTS=0 111*62c56f98SSadaf EbrahimiFAILS=0 112*62c56f98SSadaf EbrahimiSKIPS=0 113*62c56f98SSadaf Ebrahimi 114*62c56f98SSadaf EbrahimiCONFIG_H='../include/mbedtls/mbedtls_config.h' 115*62c56f98SSadaf Ebrahimi 116*62c56f98SSadaf EbrahimiMEMCHECK=0 117*62c56f98SSadaf EbrahimiFILTER='.*' 118*62c56f98SSadaf EbrahimiEXCLUDE='^$' 119*62c56f98SSadaf Ebrahimi 120*62c56f98SSadaf EbrahimiSHOW_TEST_NUMBER=0 121*62c56f98SSadaf EbrahimiRUN_TEST_NUMBER='' 122*62c56f98SSadaf Ebrahimi 123*62c56f98SSadaf EbrahimiPRESERVE_LOGS=0 124*62c56f98SSadaf Ebrahimi 125*62c56f98SSadaf Ebrahimi# Pick a "unique" server port in the range 10000-19999, and a proxy 126*62c56f98SSadaf Ebrahimi# port which is this plus 10000. Each port number may be independently 127*62c56f98SSadaf Ebrahimi# overridden by a command line option. 128*62c56f98SSadaf EbrahimiSRV_PORT=$(($$ % 10000 + 10000)) 129*62c56f98SSadaf EbrahimiPXY_PORT=$((SRV_PORT + 10000)) 130*62c56f98SSadaf Ebrahimi 131*62c56f98SSadaf Ebrahimiprint_usage() { 132*62c56f98SSadaf Ebrahimi echo "Usage: $0 [options]" 133*62c56f98SSadaf Ebrahimi printf " -h|--help\tPrint this help.\n" 134*62c56f98SSadaf Ebrahimi printf " -m|--memcheck\tCheck memory leaks and errors.\n" 135*62c56f98SSadaf Ebrahimi printf " -f|--filter\tOnly matching tests are executed (substring or BRE)\n" 136*62c56f98SSadaf Ebrahimi printf " -e|--exclude\tMatching tests are excluded (substring or BRE)\n" 137*62c56f98SSadaf Ebrahimi printf " -n|--number\tExecute only numbered test (comma-separated, e.g. '245,256')\n" 138*62c56f98SSadaf Ebrahimi printf " -s|--show-numbers\tShow test numbers in front of test names\n" 139*62c56f98SSadaf Ebrahimi printf " -p|--preserve-logs\tPreserve logs of successful tests as well\n" 140*62c56f98SSadaf Ebrahimi printf " --outcome-file\tFile where test outcomes are written\n" 141*62c56f98SSadaf Ebrahimi printf " \t(default: \$MBEDTLS_TEST_OUTCOME_FILE, none if empty)\n" 142*62c56f98SSadaf Ebrahimi printf " --port \tTCP/UDP port (default: randomish 1xxxx)\n" 143*62c56f98SSadaf Ebrahimi printf " --proxy-port\tTCP/UDP proxy port (default: randomish 2xxxx)\n" 144*62c56f98SSadaf Ebrahimi printf " --seed \tInteger seed value to use for this test run\n" 145*62c56f98SSadaf Ebrahimi} 146*62c56f98SSadaf Ebrahimi 147*62c56f98SSadaf Ebrahimiget_options() { 148*62c56f98SSadaf Ebrahimi while [ $# -gt 0 ]; do 149*62c56f98SSadaf Ebrahimi case "$1" in 150*62c56f98SSadaf Ebrahimi -f|--filter) 151*62c56f98SSadaf Ebrahimi shift; FILTER=$1 152*62c56f98SSadaf Ebrahimi ;; 153*62c56f98SSadaf Ebrahimi -e|--exclude) 154*62c56f98SSadaf Ebrahimi shift; EXCLUDE=$1 155*62c56f98SSadaf Ebrahimi ;; 156*62c56f98SSadaf Ebrahimi -m|--memcheck) 157*62c56f98SSadaf Ebrahimi MEMCHECK=1 158*62c56f98SSadaf Ebrahimi ;; 159*62c56f98SSadaf Ebrahimi -n|--number) 160*62c56f98SSadaf Ebrahimi shift; RUN_TEST_NUMBER=$1 161*62c56f98SSadaf Ebrahimi ;; 162*62c56f98SSadaf Ebrahimi -s|--show-numbers) 163*62c56f98SSadaf Ebrahimi SHOW_TEST_NUMBER=1 164*62c56f98SSadaf Ebrahimi ;; 165*62c56f98SSadaf Ebrahimi -p|--preserve-logs) 166*62c56f98SSadaf Ebrahimi PRESERVE_LOGS=1 167*62c56f98SSadaf Ebrahimi ;; 168*62c56f98SSadaf Ebrahimi --outcome-file) 169*62c56f98SSadaf Ebrahimi shift; MBEDTLS_TEST_OUTCOME_FILE=$1 170*62c56f98SSadaf Ebrahimi ;; 171*62c56f98SSadaf Ebrahimi --port) 172*62c56f98SSadaf Ebrahimi shift; SRV_PORT=$1 173*62c56f98SSadaf Ebrahimi ;; 174*62c56f98SSadaf Ebrahimi --proxy-port) 175*62c56f98SSadaf Ebrahimi shift; PXY_PORT=$1 176*62c56f98SSadaf Ebrahimi ;; 177*62c56f98SSadaf Ebrahimi --seed) 178*62c56f98SSadaf Ebrahimi shift; SEED="$1" 179*62c56f98SSadaf Ebrahimi ;; 180*62c56f98SSadaf Ebrahimi -h|--help) 181*62c56f98SSadaf Ebrahimi print_usage 182*62c56f98SSadaf Ebrahimi exit 0 183*62c56f98SSadaf Ebrahimi ;; 184*62c56f98SSadaf Ebrahimi *) 185*62c56f98SSadaf Ebrahimi echo "Unknown argument: '$1'" 186*62c56f98SSadaf Ebrahimi print_usage 187*62c56f98SSadaf Ebrahimi exit 1 188*62c56f98SSadaf Ebrahimi ;; 189*62c56f98SSadaf Ebrahimi esac 190*62c56f98SSadaf Ebrahimi shift 191*62c56f98SSadaf Ebrahimi done 192*62c56f98SSadaf Ebrahimi} 193*62c56f98SSadaf Ebrahimi 194*62c56f98SSadaf Ebrahimi# Read boolean configuration options from mbedtls_config.h for easy and quick 195*62c56f98SSadaf Ebrahimi# testing. Skip non-boolean options (with something other than spaces 196*62c56f98SSadaf Ebrahimi# and a comment after "#define SYMBOL"). The variable contains a 197*62c56f98SSadaf Ebrahimi# space-separated list of symbols. 198*62c56f98SSadaf EbrahimiCONFIGS_ENABLED=" $(echo `$P_QUERY -l` )" 199*62c56f98SSadaf Ebrahimi# Skip next test; use this macro to skip tests which are legitimate 200*62c56f98SSadaf Ebrahimi# in theory and expected to be re-introduced at some point, but 201*62c56f98SSadaf Ebrahimi# aren't expected to succeed at the moment due to problems outside 202*62c56f98SSadaf Ebrahimi# our control (such as bugs in other TLS implementations). 203*62c56f98SSadaf Ebrahimiskip_next_test() { 204*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 205*62c56f98SSadaf Ebrahimi} 206*62c56f98SSadaf Ebrahimi 207*62c56f98SSadaf Ebrahimi# Check if the required configuration ($1) is enabled 208*62c56f98SSadaf Ebrahimiis_config_enabled() 209*62c56f98SSadaf Ebrahimi{ 210*62c56f98SSadaf Ebrahimi case $CONFIGS_ENABLED in 211*62c56f98SSadaf Ebrahimi *" $1"[\ =]*) return 0;; 212*62c56f98SSadaf Ebrahimi *) return 1;; 213*62c56f98SSadaf Ebrahimi esac 214*62c56f98SSadaf Ebrahimi} 215*62c56f98SSadaf Ebrahimi 216*62c56f98SSadaf Ebrahimi# skip next test if the flag is not enabled in mbedtls_config.h 217*62c56f98SSadaf Ebrahimirequires_config_enabled() { 218*62c56f98SSadaf Ebrahimi case $CONFIGS_ENABLED in 219*62c56f98SSadaf Ebrahimi *" $1"[\ =]*) :;; 220*62c56f98SSadaf Ebrahimi *) SKIP_NEXT="YES";; 221*62c56f98SSadaf Ebrahimi esac 222*62c56f98SSadaf Ebrahimi} 223*62c56f98SSadaf Ebrahimi 224*62c56f98SSadaf Ebrahimi# skip next test if the flag is enabled in mbedtls_config.h 225*62c56f98SSadaf Ebrahimirequires_config_disabled() { 226*62c56f98SSadaf Ebrahimi case $CONFIGS_ENABLED in 227*62c56f98SSadaf Ebrahimi *" $1"[\ =]*) SKIP_NEXT="YES";; 228*62c56f98SSadaf Ebrahimi esac 229*62c56f98SSadaf Ebrahimi} 230*62c56f98SSadaf Ebrahimi 231*62c56f98SSadaf Ebrahimirequires_all_configs_enabled() { 232*62c56f98SSadaf Ebrahimi if ! $P_QUERY -all $* 233*62c56f98SSadaf Ebrahimi then 234*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 235*62c56f98SSadaf Ebrahimi fi 236*62c56f98SSadaf Ebrahimi} 237*62c56f98SSadaf Ebrahimi 238*62c56f98SSadaf Ebrahimirequires_all_configs_disabled() { 239*62c56f98SSadaf Ebrahimi if $P_QUERY -any $* 240*62c56f98SSadaf Ebrahimi then 241*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 242*62c56f98SSadaf Ebrahimi fi 243*62c56f98SSadaf Ebrahimi} 244*62c56f98SSadaf Ebrahimi 245*62c56f98SSadaf Ebrahimirequires_any_configs_enabled() { 246*62c56f98SSadaf Ebrahimi if ! $P_QUERY -any $* 247*62c56f98SSadaf Ebrahimi then 248*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 249*62c56f98SSadaf Ebrahimi fi 250*62c56f98SSadaf Ebrahimi} 251*62c56f98SSadaf Ebrahimi 252*62c56f98SSadaf Ebrahimirequires_any_configs_disabled() { 253*62c56f98SSadaf Ebrahimi if $P_QUERY -all $* 254*62c56f98SSadaf Ebrahimi then 255*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 256*62c56f98SSadaf Ebrahimi fi 257*62c56f98SSadaf Ebrahimi} 258*62c56f98SSadaf Ebrahimi 259*62c56f98SSadaf EbrahimiTLS1_2_KEY_EXCHANGES_WITH_CERT="MBEDTLS_KEY_EXCHANGE_RSA_ENABLED \ 260*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ 261*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ 262*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED \ 263*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ 264*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED \ 265*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED" 266*62c56f98SSadaf Ebrahimi 267*62c56f98SSadaf EbrahimiTLS1_2_KEY_EXCHANGES_WITH_ECDSA_CERT="MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED \ 268*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED" 269*62c56f98SSadaf Ebrahimi 270*62c56f98SSadaf EbrahimiTLS1_2_KEY_EXCHANGES_WITH_CERT_WO_ECDH="MBEDTLS_KEY_EXCHANGE_RSA_ENABLED \ 271*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ 272*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ 273*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED \ 274*62c56f98SSadaf Ebrahimi MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED" 275*62c56f98SSadaf Ebrahimi 276*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled() { 277*62c56f98SSadaf Ebrahimi if $P_QUERY -all MBEDTLS_SSL_PROTO_TLS1_2 278*62c56f98SSadaf Ebrahimi then 279*62c56f98SSadaf Ebrahimi requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 280*62c56f98SSadaf Ebrahimi elif ! $P_QUERY -all MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 281*62c56f98SSadaf Ebrahimi then 282*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 283*62c56f98SSadaf Ebrahimi fi 284*62c56f98SSadaf Ebrahimi} 285*62c56f98SSadaf Ebrahimi 286*62c56f98SSadaf Ebrahimiget_config_value_or_default() { 287*62c56f98SSadaf Ebrahimi # This function uses the query_config command line option to query the 288*62c56f98SSadaf Ebrahimi # required Mbed TLS compile time configuration from the ssl_server2 289*62c56f98SSadaf Ebrahimi # program. The command will always return a success value if the 290*62c56f98SSadaf Ebrahimi # configuration is defined and the value will be printed to stdout. 291*62c56f98SSadaf Ebrahimi # 292*62c56f98SSadaf Ebrahimi # Note that if the configuration is not defined or is defined to nothing, 293*62c56f98SSadaf Ebrahimi # the output of this function will be an empty string. 294*62c56f98SSadaf Ebrahimi ${P_SRV} "query_config=${1}" 295*62c56f98SSadaf Ebrahimi} 296*62c56f98SSadaf Ebrahimi 297*62c56f98SSadaf Ebrahimirequires_config_value_at_least() { 298*62c56f98SSadaf Ebrahimi VAL="$( get_config_value_or_default "$1" )" 299*62c56f98SSadaf Ebrahimi if [ -z "$VAL" ]; then 300*62c56f98SSadaf Ebrahimi # Should never happen 301*62c56f98SSadaf Ebrahimi echo "Mbed TLS configuration $1 is not defined" 302*62c56f98SSadaf Ebrahimi exit 1 303*62c56f98SSadaf Ebrahimi elif [ "$VAL" -lt "$2" ]; then 304*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 305*62c56f98SSadaf Ebrahimi fi 306*62c56f98SSadaf Ebrahimi} 307*62c56f98SSadaf Ebrahimi 308*62c56f98SSadaf Ebrahimirequires_config_value_at_most() { 309*62c56f98SSadaf Ebrahimi VAL=$( get_config_value_or_default "$1" ) 310*62c56f98SSadaf Ebrahimi if [ -z "$VAL" ]; then 311*62c56f98SSadaf Ebrahimi # Should never happen 312*62c56f98SSadaf Ebrahimi echo "Mbed TLS configuration $1 is not defined" 313*62c56f98SSadaf Ebrahimi exit 1 314*62c56f98SSadaf Ebrahimi elif [ "$VAL" -gt "$2" ]; then 315*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 316*62c56f98SSadaf Ebrahimi fi 317*62c56f98SSadaf Ebrahimi} 318*62c56f98SSadaf Ebrahimi 319*62c56f98SSadaf Ebrahimirequires_config_value_equals() { 320*62c56f98SSadaf Ebrahimi VAL=$( get_config_value_or_default "$1" ) 321*62c56f98SSadaf Ebrahimi if [ -z "$VAL" ]; then 322*62c56f98SSadaf Ebrahimi # Should never happen 323*62c56f98SSadaf Ebrahimi echo "Mbed TLS configuration $1 is not defined" 324*62c56f98SSadaf Ebrahimi exit 1 325*62c56f98SSadaf Ebrahimi elif [ "$VAL" -ne "$2" ]; then 326*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 327*62c56f98SSadaf Ebrahimi fi 328*62c56f98SSadaf Ebrahimi} 329*62c56f98SSadaf Ebrahimi 330*62c56f98SSadaf Ebrahimi# Require Mbed TLS to support the given protocol version. 331*62c56f98SSadaf Ebrahimi# 332*62c56f98SSadaf Ebrahimi# Inputs: 333*62c56f98SSadaf Ebrahimi# * $1: protocol version in mbedtls syntax (argument to force_version=) 334*62c56f98SSadaf Ebrahimirequires_protocol_version() { 335*62c56f98SSadaf Ebrahimi # Support for DTLS is detected separately in detect_dtls(). 336*62c56f98SSadaf Ebrahimi case "$1" in 337*62c56f98SSadaf Ebrahimi tls12|dtls12) requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2;; 338*62c56f98SSadaf Ebrahimi tls13|dtls13) requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3;; 339*62c56f98SSadaf Ebrahimi *) echo "Unknown required protocol version: $1"; exit 1;; 340*62c56f98SSadaf Ebrahimi esac 341*62c56f98SSadaf Ebrahimi} 342*62c56f98SSadaf Ebrahimi 343*62c56f98SSadaf Ebrahimi# Space-separated list of ciphersuites supported by this build of 344*62c56f98SSadaf Ebrahimi# Mbed TLS. 345*62c56f98SSadaf EbrahimiP_CIPHERSUITES=" $($P_CLI --help 2>/dev/null | 346*62c56f98SSadaf Ebrahimi grep 'TLS-\|TLS1-3' | 347*62c56f98SSadaf Ebrahimi tr -s ' \n' ' ')" 348*62c56f98SSadaf Ebrahimirequires_ciphersuite_enabled() { 349*62c56f98SSadaf Ebrahimi case $P_CIPHERSUITES in 350*62c56f98SSadaf Ebrahimi *" $1 "*) :;; 351*62c56f98SSadaf Ebrahimi *) SKIP_NEXT="YES";; 352*62c56f98SSadaf Ebrahimi esac 353*62c56f98SSadaf Ebrahimi} 354*62c56f98SSadaf Ebrahimi 355*62c56f98SSadaf Ebrahimi# Automatically detect required features based on command line parameters. 356*62c56f98SSadaf Ebrahimi# Parameters are: 357*62c56f98SSadaf Ebrahimi# - $1 = command line (call to a TLS client or server program) 358*62c56f98SSadaf Ebrahimi# - $2 = client/server 359*62c56f98SSadaf Ebrahimi# - $3 = TLS version (TLS12 or TLS13) 360*62c56f98SSadaf Ebrahimi# - $4 = Use an external tool without ECDH support 361*62c56f98SSadaf Ebrahimi# - $5 = run test options 362*62c56f98SSadaf Ebrahimidetect_required_features() { 363*62c56f98SSadaf Ebrahimi CMD_LINE=$1 364*62c56f98SSadaf Ebrahimi ROLE=$2 365*62c56f98SSadaf Ebrahimi TLS_VERSION=$3 366*62c56f98SSadaf Ebrahimi EXT_WO_ECDH=$4 367*62c56f98SSadaf Ebrahimi TEST_OPTIONS=${5:-} 368*62c56f98SSadaf Ebrahimi 369*62c56f98SSadaf Ebrahimi case "$CMD_LINE" in 370*62c56f98SSadaf Ebrahimi *\ force_version=*) 371*62c56f98SSadaf Ebrahimi tmp="${CMD_LINE##*\ force_version=}" 372*62c56f98SSadaf Ebrahimi tmp="${tmp%%[!-0-9A-Z_a-z]*}" 373*62c56f98SSadaf Ebrahimi requires_protocol_version "$tmp";; 374*62c56f98SSadaf Ebrahimi esac 375*62c56f98SSadaf Ebrahimi 376*62c56f98SSadaf Ebrahimi case "$CMD_LINE" in 377*62c56f98SSadaf Ebrahimi *\ force_ciphersuite=*) 378*62c56f98SSadaf Ebrahimi tmp="${CMD_LINE##*\ force_ciphersuite=}" 379*62c56f98SSadaf Ebrahimi tmp="${tmp%%[!-0-9A-Z_a-z]*}" 380*62c56f98SSadaf Ebrahimi requires_ciphersuite_enabled "$tmp";; 381*62c56f98SSadaf Ebrahimi esac 382*62c56f98SSadaf Ebrahimi 383*62c56f98SSadaf Ebrahimi case " $CMD_LINE " in 384*62c56f98SSadaf Ebrahimi *[-_\ =]tickets=[^0]*) 385*62c56f98SSadaf Ebrahimi requires_config_enabled MBEDTLS_SSL_TICKET_C;; 386*62c56f98SSadaf Ebrahimi esac 387*62c56f98SSadaf Ebrahimi case " $CMD_LINE " in 388*62c56f98SSadaf Ebrahimi *[-_\ =]alpn=*) 389*62c56f98SSadaf Ebrahimi requires_config_enabled MBEDTLS_SSL_ALPN;; 390*62c56f98SSadaf Ebrahimi esac 391*62c56f98SSadaf Ebrahimi 392*62c56f98SSadaf Ebrahimi case "$CMD_LINE" in 393*62c56f98SSadaf Ebrahimi *server5*|\ 394*62c56f98SSadaf Ebrahimi *server7*|\ 395*62c56f98SSadaf Ebrahimi *dir-maxpath*) 396*62c56f98SSadaf Ebrahimi if [ "$TLS_VERSION" = "TLS13" ]; then 397*62c56f98SSadaf Ebrahimi # In case of TLS13 the support for ECDSA is enough 398*62c56f98SSadaf Ebrahimi requires_pk_alg "ECDSA" 399*62c56f98SSadaf Ebrahimi else 400*62c56f98SSadaf Ebrahimi # For TLS12 requirements are different between server and client 401*62c56f98SSadaf Ebrahimi if [ "$ROLE" = "server" ]; then 402*62c56f98SSadaf Ebrahimi # If the server uses "server5*" certificates, then an ECDSA based 403*62c56f98SSadaf Ebrahimi # key exchange is required. However gnutls also does not 404*62c56f98SSadaf Ebrahimi # support ECDH, so this limit the choice to ECDHE-ECDSA 405*62c56f98SSadaf Ebrahimi if [ "$EXT_WO_ECDH" = "yes" ]; then 406*62c56f98SSadaf Ebrahimi requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 407*62c56f98SSadaf Ebrahimi else 408*62c56f98SSadaf Ebrahimi requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_ECDSA_CERT 409*62c56f98SSadaf Ebrahimi fi 410*62c56f98SSadaf Ebrahimi elif [ "$ROLE" = "client" ]; then 411*62c56f98SSadaf Ebrahimi # On the client side it is enough to have any certificate 412*62c56f98SSadaf Ebrahimi # based authentication together with support for ECDSA. 413*62c56f98SSadaf Ebrahimi # Of course the GnuTLS limitation mentioned above applies 414*62c56f98SSadaf Ebrahimi # also here. 415*62c56f98SSadaf Ebrahimi if [ "$EXT_WO_ECDH" = "yes" ]; then 416*62c56f98SSadaf Ebrahimi requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT_WO_ECDH 417*62c56f98SSadaf Ebrahimi else 418*62c56f98SSadaf Ebrahimi requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 419*62c56f98SSadaf Ebrahimi fi 420*62c56f98SSadaf Ebrahimi requires_pk_alg "ECDSA" 421*62c56f98SSadaf Ebrahimi fi 422*62c56f98SSadaf Ebrahimi fi 423*62c56f98SSadaf Ebrahimi ;; 424*62c56f98SSadaf Ebrahimi esac 425*62c56f98SSadaf Ebrahimi 426*62c56f98SSadaf Ebrahimi case "$CMD_LINE" in 427*62c56f98SSadaf Ebrahimi *server2*|\ 428*62c56f98SSadaf Ebrahimi *server7*) 429*62c56f98SSadaf Ebrahimi # server2 and server7 certificates use RSA encryption 430*62c56f98SSadaf Ebrahimi requires_config_enabled "MBEDTLS_RSA_C" 431*62c56f98SSadaf Ebrahimi esac 432*62c56f98SSadaf Ebrahimi 433*62c56f98SSadaf Ebrahimi unset tmp 434*62c56f98SSadaf Ebrahimi} 435*62c56f98SSadaf Ebrahimi 436*62c56f98SSadaf Ebrahimirequires_certificate_authentication () { 437*62c56f98SSadaf Ebrahimi if [ "$PSK_ONLY" = "YES" ]; then 438*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 439*62c56f98SSadaf Ebrahimi fi 440*62c56f98SSadaf Ebrahimi} 441*62c56f98SSadaf Ebrahimi 442*62c56f98SSadaf Ebrahimiadapt_cmd_for_psk () { 443*62c56f98SSadaf Ebrahimi case "$2" in 444*62c56f98SSadaf Ebrahimi *openssl*) s='-psk abc123 -nocert';; 445*62c56f98SSadaf Ebrahimi *gnutls-*) s='--pskkey=abc123';; 446*62c56f98SSadaf Ebrahimi *) s='psk=abc123';; 447*62c56f98SSadaf Ebrahimi esac 448*62c56f98SSadaf Ebrahimi eval $1='"$2 $s"' 449*62c56f98SSadaf Ebrahimi unset s 450*62c56f98SSadaf Ebrahimi} 451*62c56f98SSadaf Ebrahimi 452*62c56f98SSadaf Ebrahimi# maybe_adapt_for_psk [RUN_TEST_OPTION...] 453*62c56f98SSadaf Ebrahimi# If running in a PSK-only build, maybe adapt the test to use a pre-shared key. 454*62c56f98SSadaf Ebrahimi# 455*62c56f98SSadaf Ebrahimi# If not running in a PSK-only build, do nothing. 456*62c56f98SSadaf Ebrahimi# If the test looks like it doesn't use a pre-shared key but can run with a 457*62c56f98SSadaf Ebrahimi# pre-shared key, pass a pre-shared key. If the test looks like it can't run 458*62c56f98SSadaf Ebrahimi# with a pre-shared key, skip it. If the test looks like it's already using 459*62c56f98SSadaf Ebrahimi# a pre-shared key, do nothing. 460*62c56f98SSadaf Ebrahimi# 461*62c56f98SSadaf Ebrahimi# This code does not consider builds with ECDHE-PSK or RSA-PSK. 462*62c56f98SSadaf Ebrahimi# 463*62c56f98SSadaf Ebrahimi# Inputs: 464*62c56f98SSadaf Ebrahimi# * $CLI_CMD, $SRV_CMD, $PXY_CMD: client/server/proxy commands. 465*62c56f98SSadaf Ebrahimi# * $PSK_ONLY: YES if running in a PSK-only build (no asymmetric key exchanges). 466*62c56f98SSadaf Ebrahimi# * "$@": options passed to run_test. 467*62c56f98SSadaf Ebrahimi# 468*62c56f98SSadaf Ebrahimi# Outputs: 469*62c56f98SSadaf Ebrahimi# * $CLI_CMD, $SRV_CMD: may be modified to add PSK-relevant arguments. 470*62c56f98SSadaf Ebrahimi# * $SKIP_NEXT: set to YES if the test can't run with PSK. 471*62c56f98SSadaf Ebrahimimaybe_adapt_for_psk() { 472*62c56f98SSadaf Ebrahimi if [ "$PSK_ONLY" != "YES" ]; then 473*62c56f98SSadaf Ebrahimi return 474*62c56f98SSadaf Ebrahimi fi 475*62c56f98SSadaf Ebrahimi if [ "$SKIP_NEXT" = "YES" ]; then 476*62c56f98SSadaf Ebrahimi return 477*62c56f98SSadaf Ebrahimi fi 478*62c56f98SSadaf Ebrahimi case "$CLI_CMD $SRV_CMD" in 479*62c56f98SSadaf Ebrahimi *[-_\ =]psk*|*[-_\ =]PSK*) 480*62c56f98SSadaf Ebrahimi return;; 481*62c56f98SSadaf Ebrahimi *force_ciphersuite*) 482*62c56f98SSadaf Ebrahimi # The test case forces a non-PSK cipher suite. In some cases, a 483*62c56f98SSadaf Ebrahimi # PSK cipher suite could be substituted, but we're not ready for 484*62c56f98SSadaf Ebrahimi # that yet. 485*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 486*62c56f98SSadaf Ebrahimi return;; 487*62c56f98SSadaf Ebrahimi *\ auth_mode=*|*[-_\ =]crt[_=]*) 488*62c56f98SSadaf Ebrahimi # The test case involves certificates. PSK won't do. 489*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 490*62c56f98SSadaf Ebrahimi return;; 491*62c56f98SSadaf Ebrahimi esac 492*62c56f98SSadaf Ebrahimi adapt_cmd_for_psk CLI_CMD "$CLI_CMD" 493*62c56f98SSadaf Ebrahimi adapt_cmd_for_psk SRV_CMD "$SRV_CMD" 494*62c56f98SSadaf Ebrahimi} 495*62c56f98SSadaf Ebrahimi 496*62c56f98SSadaf Ebrahimicase " $CONFIGS_ENABLED " in 497*62c56f98SSadaf Ebrahimi *\ MBEDTLS_KEY_EXCHANGE_[^P]*) PSK_ONLY="NO";; 498*62c56f98SSadaf Ebrahimi *\ MBEDTLS_KEY_EXCHANGE_P[^S]*) PSK_ONLY="NO";; 499*62c56f98SSadaf Ebrahimi *\ MBEDTLS_KEY_EXCHANGE_PS[^K]*) PSK_ONLY="NO";; 500*62c56f98SSadaf Ebrahimi *\ MBEDTLS_KEY_EXCHANGE_PSK[^_]*) PSK_ONLY="NO";; 501*62c56f98SSadaf Ebrahimi *\ MBEDTLS_KEY_EXCHANGE_PSK_ENABLED\ *) PSK_ONLY="YES";; 502*62c56f98SSadaf Ebrahimi *) PSK_ONLY="NO";; 503*62c56f98SSadaf Ebrahimiesac 504*62c56f98SSadaf Ebrahimi 505*62c56f98SSadaf EbrahimiHAS_ALG_SHA_1="NO" 506*62c56f98SSadaf EbrahimiHAS_ALG_SHA_224="NO" 507*62c56f98SSadaf EbrahimiHAS_ALG_SHA_256="NO" 508*62c56f98SSadaf EbrahimiHAS_ALG_SHA_384="NO" 509*62c56f98SSadaf EbrahimiHAS_ALG_SHA_512="NO" 510*62c56f98SSadaf Ebrahimi 511*62c56f98SSadaf Ebrahimicheck_for_hash_alg() 512*62c56f98SSadaf Ebrahimi{ 513*62c56f98SSadaf Ebrahimi CURR_ALG="INVALID"; 514*62c56f98SSadaf Ebrahimi USE_PSA="NO" 515*62c56f98SSadaf Ebrahimi if is_config_enabled "MBEDTLS_USE_PSA_CRYPTO"; then 516*62c56f98SSadaf Ebrahimi USE_PSA="YES"; 517*62c56f98SSadaf Ebrahimi fi 518*62c56f98SSadaf Ebrahimi if [ $USE_PSA = "YES" ]; then 519*62c56f98SSadaf Ebrahimi CURR_ALG=PSA_WANT_ALG_${1} 520*62c56f98SSadaf Ebrahimi else 521*62c56f98SSadaf Ebrahimi CURR_ALG=MBEDTLS_${1}_C 522*62c56f98SSadaf Ebrahimi # Remove the second underscore to match MBEDTLS_* naming convention 523*62c56f98SSadaf Ebrahimi CURR_ALG=$(echo "$CURR_ALG" | sed 's/_//2') 524*62c56f98SSadaf Ebrahimi fi 525*62c56f98SSadaf Ebrahimi 526*62c56f98SSadaf Ebrahimi case $CONFIGS_ENABLED in 527*62c56f98SSadaf Ebrahimi *" $CURR_ALG"[\ =]*) 528*62c56f98SSadaf Ebrahimi return 0 529*62c56f98SSadaf Ebrahimi ;; 530*62c56f98SSadaf Ebrahimi *) :;; 531*62c56f98SSadaf Ebrahimi esac 532*62c56f98SSadaf Ebrahimi return 1 533*62c56f98SSadaf Ebrahimi} 534*62c56f98SSadaf Ebrahimi 535*62c56f98SSadaf Ebrahimipopulate_enabled_hash_algs() 536*62c56f98SSadaf Ebrahimi{ 537*62c56f98SSadaf Ebrahimi for hash_alg in SHA_1 SHA_224 SHA_256 SHA_384 SHA_512; do 538*62c56f98SSadaf Ebrahimi if check_for_hash_alg "$hash_alg"; then 539*62c56f98SSadaf Ebrahimi hash_alg_variable=HAS_ALG_${hash_alg} 540*62c56f98SSadaf Ebrahimi eval ${hash_alg_variable}=YES 541*62c56f98SSadaf Ebrahimi fi 542*62c56f98SSadaf Ebrahimi done 543*62c56f98SSadaf Ebrahimi} 544*62c56f98SSadaf Ebrahimi 545*62c56f98SSadaf Ebrahimi# skip next test if the given hash alg is not supported 546*62c56f98SSadaf Ebrahimirequires_hash_alg() { 547*62c56f98SSadaf Ebrahimi HASH_DEFINE="Invalid" 548*62c56f98SSadaf Ebrahimi HAS_HASH_ALG="NO" 549*62c56f98SSadaf Ebrahimi case $1 in 550*62c56f98SSadaf Ebrahimi SHA_1):;; 551*62c56f98SSadaf Ebrahimi SHA_224):;; 552*62c56f98SSadaf Ebrahimi SHA_256):;; 553*62c56f98SSadaf Ebrahimi SHA_384):;; 554*62c56f98SSadaf Ebrahimi SHA_512):;; 555*62c56f98SSadaf Ebrahimi *) 556*62c56f98SSadaf Ebrahimi echo "Unsupported hash alg - $1" 557*62c56f98SSadaf Ebrahimi exit 1 558*62c56f98SSadaf Ebrahimi ;; 559*62c56f98SSadaf Ebrahimi esac 560*62c56f98SSadaf Ebrahimi 561*62c56f98SSadaf Ebrahimi HASH_DEFINE=HAS_ALG_${1} 562*62c56f98SSadaf Ebrahimi eval "HAS_HASH_ALG=\${${HASH_DEFINE}}" 563*62c56f98SSadaf Ebrahimi if [ "$HAS_HASH_ALG" = "NO" ] 564*62c56f98SSadaf Ebrahimi then 565*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 566*62c56f98SSadaf Ebrahimi fi 567*62c56f98SSadaf Ebrahimi} 568*62c56f98SSadaf Ebrahimi 569*62c56f98SSadaf Ebrahimi# Skip next test if the given pk alg is not enabled 570*62c56f98SSadaf Ebrahimirequires_pk_alg() { 571*62c56f98SSadaf Ebrahimi case $1 in 572*62c56f98SSadaf Ebrahimi ECDSA) 573*62c56f98SSadaf Ebrahimi if is_config_enabled MBEDTLS_USE_PSA_CRYPTO; then 574*62c56f98SSadaf Ebrahimi requires_config_enabled PSA_WANT_ALG_ECDSA 575*62c56f98SSadaf Ebrahimi else 576*62c56f98SSadaf Ebrahimi requires_config_enabled MBEDTLS_ECDSA_C 577*62c56f98SSadaf Ebrahimi fi 578*62c56f98SSadaf Ebrahimi ;; 579*62c56f98SSadaf Ebrahimi *) 580*62c56f98SSadaf Ebrahimi echo "Unknown/unimplemented case $1 in requires_pk_alg" 581*62c56f98SSadaf Ebrahimi exit 1 582*62c56f98SSadaf Ebrahimi ;; 583*62c56f98SSadaf Ebrahimi esac 584*62c56f98SSadaf Ebrahimi} 585*62c56f98SSadaf Ebrahimi 586*62c56f98SSadaf Ebrahimi# skip next test if OpenSSL doesn't support FALLBACK_SCSV 587*62c56f98SSadaf Ebrahimirequires_openssl_with_fallback_scsv() { 588*62c56f98SSadaf Ebrahimi if [ -z "${OPENSSL_HAS_FBSCSV:-}" ]; then 589*62c56f98SSadaf Ebrahimi if $OPENSSL s_client -help 2>&1 | grep fallback_scsv >/dev/null 590*62c56f98SSadaf Ebrahimi then 591*62c56f98SSadaf Ebrahimi OPENSSL_HAS_FBSCSV="YES" 592*62c56f98SSadaf Ebrahimi else 593*62c56f98SSadaf Ebrahimi OPENSSL_HAS_FBSCSV="NO" 594*62c56f98SSadaf Ebrahimi fi 595*62c56f98SSadaf Ebrahimi fi 596*62c56f98SSadaf Ebrahimi if [ "$OPENSSL_HAS_FBSCSV" = "NO" ]; then 597*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 598*62c56f98SSadaf Ebrahimi fi 599*62c56f98SSadaf Ebrahimi} 600*62c56f98SSadaf Ebrahimi 601*62c56f98SSadaf Ebrahimi# skip next test if either IN_CONTENT_LEN or MAX_CONTENT_LEN are below a value 602*62c56f98SSadaf Ebrahimirequires_max_content_len() { 603*62c56f98SSadaf Ebrahimi requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" $1 604*62c56f98SSadaf Ebrahimi requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" $1 605*62c56f98SSadaf Ebrahimi} 606*62c56f98SSadaf Ebrahimi 607*62c56f98SSadaf Ebrahimi# skip next test if GnuTLS isn't available 608*62c56f98SSadaf Ebrahimirequires_gnutls() { 609*62c56f98SSadaf Ebrahimi if [ -z "${GNUTLS_AVAILABLE:-}" ]; then 610*62c56f98SSadaf Ebrahimi if ( which "$GNUTLS_CLI" && which "$GNUTLS_SERV" ) >/dev/null 2>&1; then 611*62c56f98SSadaf Ebrahimi GNUTLS_AVAILABLE="YES" 612*62c56f98SSadaf Ebrahimi else 613*62c56f98SSadaf Ebrahimi GNUTLS_AVAILABLE="NO" 614*62c56f98SSadaf Ebrahimi fi 615*62c56f98SSadaf Ebrahimi fi 616*62c56f98SSadaf Ebrahimi if [ "$GNUTLS_AVAILABLE" = "NO" ]; then 617*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 618*62c56f98SSadaf Ebrahimi fi 619*62c56f98SSadaf Ebrahimi} 620*62c56f98SSadaf Ebrahimi 621*62c56f98SSadaf Ebrahimi# skip next test if GnuTLS-next isn't available 622*62c56f98SSadaf Ebrahimirequires_gnutls_next() { 623*62c56f98SSadaf Ebrahimi if [ -z "${GNUTLS_NEXT_AVAILABLE:-}" ]; then 624*62c56f98SSadaf Ebrahimi if ( which "${GNUTLS_NEXT_CLI:-}" && which "${GNUTLS_NEXT_SERV:-}" ) >/dev/null 2>&1; then 625*62c56f98SSadaf Ebrahimi GNUTLS_NEXT_AVAILABLE="YES" 626*62c56f98SSadaf Ebrahimi else 627*62c56f98SSadaf Ebrahimi GNUTLS_NEXT_AVAILABLE="NO" 628*62c56f98SSadaf Ebrahimi fi 629*62c56f98SSadaf Ebrahimi fi 630*62c56f98SSadaf Ebrahimi if [ "$GNUTLS_NEXT_AVAILABLE" = "NO" ]; then 631*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 632*62c56f98SSadaf Ebrahimi fi 633*62c56f98SSadaf Ebrahimi} 634*62c56f98SSadaf Ebrahimi 635*62c56f98SSadaf Ebrahimi# skip next test if OpenSSL-legacy isn't available 636*62c56f98SSadaf Ebrahimirequires_openssl_legacy() { 637*62c56f98SSadaf Ebrahimi if [ -z "${OPENSSL_LEGACY_AVAILABLE:-}" ]; then 638*62c56f98SSadaf Ebrahimi if which "${OPENSSL_LEGACY:-}" >/dev/null 2>&1; then 639*62c56f98SSadaf Ebrahimi OPENSSL_LEGACY_AVAILABLE="YES" 640*62c56f98SSadaf Ebrahimi else 641*62c56f98SSadaf Ebrahimi OPENSSL_LEGACY_AVAILABLE="NO" 642*62c56f98SSadaf Ebrahimi fi 643*62c56f98SSadaf Ebrahimi fi 644*62c56f98SSadaf Ebrahimi if [ "$OPENSSL_LEGACY_AVAILABLE" = "NO" ]; then 645*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 646*62c56f98SSadaf Ebrahimi fi 647*62c56f98SSadaf Ebrahimi} 648*62c56f98SSadaf Ebrahimi 649*62c56f98SSadaf Ebrahimirequires_openssl_next() { 650*62c56f98SSadaf Ebrahimi if [ -z "${OPENSSL_NEXT_AVAILABLE:-}" ]; then 651*62c56f98SSadaf Ebrahimi if which "${OPENSSL_NEXT:-}" >/dev/null 2>&1; then 652*62c56f98SSadaf Ebrahimi OPENSSL_NEXT_AVAILABLE="YES" 653*62c56f98SSadaf Ebrahimi else 654*62c56f98SSadaf Ebrahimi OPENSSL_NEXT_AVAILABLE="NO" 655*62c56f98SSadaf Ebrahimi fi 656*62c56f98SSadaf Ebrahimi fi 657*62c56f98SSadaf Ebrahimi if [ "$OPENSSL_NEXT_AVAILABLE" = "NO" ]; then 658*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 659*62c56f98SSadaf Ebrahimi fi 660*62c56f98SSadaf Ebrahimi} 661*62c56f98SSadaf Ebrahimi 662*62c56f98SSadaf Ebrahimi# skip next test if openssl version is lower than 3.0 663*62c56f98SSadaf Ebrahimirequires_openssl_3_x() { 664*62c56f98SSadaf Ebrahimi requires_openssl_next 665*62c56f98SSadaf Ebrahimi if [ "$OPENSSL_NEXT_AVAILABLE" = "NO" ]; then 666*62c56f98SSadaf Ebrahimi OPENSSL_3_X_AVAILABLE="NO" 667*62c56f98SSadaf Ebrahimi fi 668*62c56f98SSadaf Ebrahimi if [ -z "${OPENSSL_3_X_AVAILABLE:-}" ]; then 669*62c56f98SSadaf Ebrahimi if $OPENSSL_NEXT version 2>&1 | grep "OpenSSL 3." >/dev/null 670*62c56f98SSadaf Ebrahimi then 671*62c56f98SSadaf Ebrahimi OPENSSL_3_X_AVAILABLE="YES" 672*62c56f98SSadaf Ebrahimi else 673*62c56f98SSadaf Ebrahimi OPENSSL_3_X_AVAILABLE="NO" 674*62c56f98SSadaf Ebrahimi fi 675*62c56f98SSadaf Ebrahimi fi 676*62c56f98SSadaf Ebrahimi if [ "$OPENSSL_3_X_AVAILABLE" = "NO" ]; then 677*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 678*62c56f98SSadaf Ebrahimi fi 679*62c56f98SSadaf Ebrahimi} 680*62c56f98SSadaf Ebrahimi 681*62c56f98SSadaf Ebrahimi# skip next test if openssl does not support ffdh keys 682*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_ffdh() { 683*62c56f98SSadaf Ebrahimi requires_openssl_3_x 684*62c56f98SSadaf Ebrahimi} 685*62c56f98SSadaf Ebrahimi 686*62c56f98SSadaf Ebrahimi# skip next test if openssl cannot handle ephemeral key exchange 687*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral() { 688*62c56f98SSadaf Ebrahimi requires_openssl_next 689*62c56f98SSadaf Ebrahimi 690*62c56f98SSadaf Ebrahimi if !(is_config_enabled "PSA_WANT_ALG_ECDH"); then 691*62c56f98SSadaf Ebrahimi requires_openssl_tls1_3_with_ffdh 692*62c56f98SSadaf Ebrahimi fi 693*62c56f98SSadaf Ebrahimi} 694*62c56f98SSadaf Ebrahimi 695*62c56f98SSadaf Ebrahimi# skip next test if tls1_3 is not available 696*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3() { 697*62c56f98SSadaf Ebrahimi requires_openssl_next 698*62c56f98SSadaf Ebrahimi if [ "$OPENSSL_NEXT_AVAILABLE" = "NO" ]; then 699*62c56f98SSadaf Ebrahimi OPENSSL_TLS1_3_AVAILABLE="NO" 700*62c56f98SSadaf Ebrahimi fi 701*62c56f98SSadaf Ebrahimi if [ -z "${OPENSSL_TLS1_3_AVAILABLE:-}" ]; then 702*62c56f98SSadaf Ebrahimi if $OPENSSL_NEXT s_client -help 2>&1 | grep tls1_3 >/dev/null 703*62c56f98SSadaf Ebrahimi then 704*62c56f98SSadaf Ebrahimi OPENSSL_TLS1_3_AVAILABLE="YES" 705*62c56f98SSadaf Ebrahimi else 706*62c56f98SSadaf Ebrahimi OPENSSL_TLS1_3_AVAILABLE="NO" 707*62c56f98SSadaf Ebrahimi fi 708*62c56f98SSadaf Ebrahimi fi 709*62c56f98SSadaf Ebrahimi if [ "$OPENSSL_TLS1_3_AVAILABLE" = "NO" ]; then 710*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 711*62c56f98SSadaf Ebrahimi fi 712*62c56f98SSadaf Ebrahimi} 713*62c56f98SSadaf Ebrahimi 714*62c56f98SSadaf Ebrahimi# skip next test if tls1_3 is not available 715*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3() { 716*62c56f98SSadaf Ebrahimi requires_gnutls_next 717*62c56f98SSadaf Ebrahimi if [ "$GNUTLS_NEXT_AVAILABLE" = "NO" ]; then 718*62c56f98SSadaf Ebrahimi GNUTLS_TLS1_3_AVAILABLE="NO" 719*62c56f98SSadaf Ebrahimi fi 720*62c56f98SSadaf Ebrahimi if [ -z "${GNUTLS_TLS1_3_AVAILABLE:-}" ]; then 721*62c56f98SSadaf Ebrahimi if $GNUTLS_NEXT_CLI -l 2>&1 | grep VERS-TLS1.3 >/dev/null 722*62c56f98SSadaf Ebrahimi then 723*62c56f98SSadaf Ebrahimi GNUTLS_TLS1_3_AVAILABLE="YES" 724*62c56f98SSadaf Ebrahimi else 725*62c56f98SSadaf Ebrahimi GNUTLS_TLS1_3_AVAILABLE="NO" 726*62c56f98SSadaf Ebrahimi fi 727*62c56f98SSadaf Ebrahimi fi 728*62c56f98SSadaf Ebrahimi if [ "$GNUTLS_TLS1_3_AVAILABLE" = "NO" ]; then 729*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 730*62c56f98SSadaf Ebrahimi fi 731*62c56f98SSadaf Ebrahimi} 732*62c56f98SSadaf Ebrahimi 733*62c56f98SSadaf Ebrahimi# Check %NO_TICKETS option 734*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket() { 735*62c56f98SSadaf Ebrahimi requires_gnutls_next 736*62c56f98SSadaf Ebrahimi if [ "$GNUTLS_NEXT_AVAILABLE" = "NO" ]; then 737*62c56f98SSadaf Ebrahimi GNUTLS_NO_TICKETS_AVAILABLE="NO" 738*62c56f98SSadaf Ebrahimi fi 739*62c56f98SSadaf Ebrahimi if [ -z "${GNUTLS_NO_TICKETS_AVAILABLE:-}" ]; then 740*62c56f98SSadaf Ebrahimi if $GNUTLS_NEXT_CLI --priority-list 2>&1 | grep NO_TICKETS >/dev/null 741*62c56f98SSadaf Ebrahimi then 742*62c56f98SSadaf Ebrahimi GNUTLS_NO_TICKETS_AVAILABLE="YES" 743*62c56f98SSadaf Ebrahimi else 744*62c56f98SSadaf Ebrahimi GNUTLS_NO_TICKETS_AVAILABLE="NO" 745*62c56f98SSadaf Ebrahimi fi 746*62c56f98SSadaf Ebrahimi fi 747*62c56f98SSadaf Ebrahimi if [ "$GNUTLS_NO_TICKETS_AVAILABLE" = "NO" ]; then 748*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 749*62c56f98SSadaf Ebrahimi fi 750*62c56f98SSadaf Ebrahimi} 751*62c56f98SSadaf Ebrahimi 752*62c56f98SSadaf Ebrahimi# Check %DISABLE_TLS13_COMPAT_MODE option 753*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat() { 754*62c56f98SSadaf Ebrahimi requires_gnutls_next 755*62c56f98SSadaf Ebrahimi if [ "$GNUTLS_NEXT_AVAILABLE" = "NO" ]; then 756*62c56f98SSadaf Ebrahimi GNUTLS_DISABLE_TLS13_COMPAT_MODE_AVAILABLE="NO" 757*62c56f98SSadaf Ebrahimi fi 758*62c56f98SSadaf Ebrahimi if [ -z "${GNUTLS_DISABLE_TLS13_COMPAT_MODE_AVAILABLE:-}" ]; then 759*62c56f98SSadaf Ebrahimi if $GNUTLS_NEXT_CLI --priority-list 2>&1 | grep DISABLE_TLS13_COMPAT_MODE >/dev/null 760*62c56f98SSadaf Ebrahimi then 761*62c56f98SSadaf Ebrahimi GNUTLS_DISABLE_TLS13_COMPAT_MODE_AVAILABLE="YES" 762*62c56f98SSadaf Ebrahimi else 763*62c56f98SSadaf Ebrahimi GNUTLS_DISABLE_TLS13_COMPAT_MODE_AVAILABLE="NO" 764*62c56f98SSadaf Ebrahimi fi 765*62c56f98SSadaf Ebrahimi fi 766*62c56f98SSadaf Ebrahimi if [ "$GNUTLS_DISABLE_TLS13_COMPAT_MODE_AVAILABLE" = "NO" ]; then 767*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 768*62c56f98SSadaf Ebrahimi fi 769*62c56f98SSadaf Ebrahimi} 770*62c56f98SSadaf Ebrahimi 771*62c56f98SSadaf Ebrahimi# skip next test if GnuTLS does not support the record size limit extension 772*62c56f98SSadaf Ebrahimirequires_gnutls_record_size_limit() { 773*62c56f98SSadaf Ebrahimi requires_gnutls_next 774*62c56f98SSadaf Ebrahimi if [ "$GNUTLS_NEXT_AVAILABLE" = "NO" ]; then 775*62c56f98SSadaf Ebrahimi GNUTLS_RECORD_SIZE_LIMIT_AVAILABLE="NO" 776*62c56f98SSadaf Ebrahimi else 777*62c56f98SSadaf Ebrahimi GNUTLS_RECORD_SIZE_LIMIT_AVAILABLE="YES" 778*62c56f98SSadaf Ebrahimi fi 779*62c56f98SSadaf Ebrahimi if [ "$GNUTLS_RECORD_SIZE_LIMIT_AVAILABLE" = "NO" ]; then 780*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 781*62c56f98SSadaf Ebrahimi fi 782*62c56f98SSadaf Ebrahimi} 783*62c56f98SSadaf Ebrahimi 784*62c56f98SSadaf Ebrahimi# skip next test if IPv6 isn't available on this host 785*62c56f98SSadaf Ebrahimirequires_ipv6() { 786*62c56f98SSadaf Ebrahimi if [ -z "${HAS_IPV6:-}" ]; then 787*62c56f98SSadaf Ebrahimi $P_SRV server_addr='::1' > $SRV_OUT 2>&1 & 788*62c56f98SSadaf Ebrahimi SRV_PID=$! 789*62c56f98SSadaf Ebrahimi sleep 1 790*62c56f98SSadaf Ebrahimi kill $SRV_PID >/dev/null 2>&1 791*62c56f98SSadaf Ebrahimi if grep "NET - Binding of the socket failed" $SRV_OUT >/dev/null; then 792*62c56f98SSadaf Ebrahimi HAS_IPV6="NO" 793*62c56f98SSadaf Ebrahimi else 794*62c56f98SSadaf Ebrahimi HAS_IPV6="YES" 795*62c56f98SSadaf Ebrahimi fi 796*62c56f98SSadaf Ebrahimi rm -r $SRV_OUT 797*62c56f98SSadaf Ebrahimi fi 798*62c56f98SSadaf Ebrahimi 799*62c56f98SSadaf Ebrahimi if [ "$HAS_IPV6" = "NO" ]; then 800*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 801*62c56f98SSadaf Ebrahimi fi 802*62c56f98SSadaf Ebrahimi} 803*62c56f98SSadaf Ebrahimi 804*62c56f98SSadaf Ebrahimi# skip next test if it's i686 or uname is not available 805*62c56f98SSadaf Ebrahimirequires_not_i686() { 806*62c56f98SSadaf Ebrahimi if [ -z "${IS_I686:-}" ]; then 807*62c56f98SSadaf Ebrahimi IS_I686="YES" 808*62c56f98SSadaf Ebrahimi if which "uname" >/dev/null 2>&1; then 809*62c56f98SSadaf Ebrahimi if [ -z "$(uname -a | grep i686)" ]; then 810*62c56f98SSadaf Ebrahimi IS_I686="NO" 811*62c56f98SSadaf Ebrahimi fi 812*62c56f98SSadaf Ebrahimi fi 813*62c56f98SSadaf Ebrahimi fi 814*62c56f98SSadaf Ebrahimi if [ "$IS_I686" = "YES" ]; then 815*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 816*62c56f98SSadaf Ebrahimi fi 817*62c56f98SSadaf Ebrahimi} 818*62c56f98SSadaf Ebrahimi 819*62c56f98SSadaf Ebrahimi# Calculate the input & output maximum content lengths set in the config 820*62c56f98SSadaf EbrahimiMAX_CONTENT_LEN=16384 821*62c56f98SSadaf EbrahimiMAX_IN_LEN=$( get_config_value_or_default "MBEDTLS_SSL_IN_CONTENT_LEN" ) 822*62c56f98SSadaf EbrahimiMAX_OUT_LEN=$( get_config_value_or_default "MBEDTLS_SSL_OUT_CONTENT_LEN" ) 823*62c56f98SSadaf Ebrahimi 824*62c56f98SSadaf Ebrahimi# Calculate the maximum content length that fits both 825*62c56f98SSadaf Ebrahimiif [ "$MAX_IN_LEN" -lt "$MAX_CONTENT_LEN" ]; then 826*62c56f98SSadaf Ebrahimi MAX_CONTENT_LEN="$MAX_IN_LEN" 827*62c56f98SSadaf Ebrahimifi 828*62c56f98SSadaf Ebrahimiif [ "$MAX_OUT_LEN" -lt "$MAX_CONTENT_LEN" ]; then 829*62c56f98SSadaf Ebrahimi MAX_CONTENT_LEN="$MAX_OUT_LEN" 830*62c56f98SSadaf Ebrahimifi 831*62c56f98SSadaf Ebrahimi 832*62c56f98SSadaf Ebrahimi# skip the next test if the SSL output buffer is less than 16KB 833*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer() { 834*62c56f98SSadaf Ebrahimi if [ "$MAX_OUT_LEN" -ne 16384 ]; then 835*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 836*62c56f98SSadaf Ebrahimi fi 837*62c56f98SSadaf Ebrahimi} 838*62c56f98SSadaf Ebrahimi 839*62c56f98SSadaf Ebrahimi# skip the next test if valgrind is in use 840*62c56f98SSadaf Ebrahiminot_with_valgrind() { 841*62c56f98SSadaf Ebrahimi if [ "$MEMCHECK" -gt 0 ]; then 842*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 843*62c56f98SSadaf Ebrahimi fi 844*62c56f98SSadaf Ebrahimi} 845*62c56f98SSadaf Ebrahimi 846*62c56f98SSadaf Ebrahimi# skip the next test if valgrind is NOT in use 847*62c56f98SSadaf Ebrahimionly_with_valgrind() { 848*62c56f98SSadaf Ebrahimi if [ "$MEMCHECK" -eq 0 ]; then 849*62c56f98SSadaf Ebrahimi SKIP_NEXT="YES" 850*62c56f98SSadaf Ebrahimi fi 851*62c56f98SSadaf Ebrahimi} 852*62c56f98SSadaf Ebrahimi 853*62c56f98SSadaf Ebrahimi# multiply the client timeout delay by the given factor for the next test 854*62c56f98SSadaf Ebrahimiclient_needs_more_time() { 855*62c56f98SSadaf Ebrahimi CLI_DELAY_FACTOR=$1 856*62c56f98SSadaf Ebrahimi} 857*62c56f98SSadaf Ebrahimi 858*62c56f98SSadaf Ebrahimi# wait for the given seconds after the client finished in the next test 859*62c56f98SSadaf Ebrahimiserver_needs_more_time() { 860*62c56f98SSadaf Ebrahimi SRV_DELAY_SECONDS=$1 861*62c56f98SSadaf Ebrahimi} 862*62c56f98SSadaf Ebrahimi 863*62c56f98SSadaf Ebrahimi# print_name <name> 864*62c56f98SSadaf Ebrahimiprint_name() { 865*62c56f98SSadaf Ebrahimi TESTS=$(( $TESTS + 1 )) 866*62c56f98SSadaf Ebrahimi LINE="" 867*62c56f98SSadaf Ebrahimi 868*62c56f98SSadaf Ebrahimi if [ "$SHOW_TEST_NUMBER" -gt 0 ]; then 869*62c56f98SSadaf Ebrahimi LINE="$TESTS " 870*62c56f98SSadaf Ebrahimi fi 871*62c56f98SSadaf Ebrahimi 872*62c56f98SSadaf Ebrahimi LINE="$LINE$1" 873*62c56f98SSadaf Ebrahimi printf "%s " "$LINE" 874*62c56f98SSadaf Ebrahimi LEN=$(( 72 - `echo "$LINE" | wc -c` )) 875*62c56f98SSadaf Ebrahimi for i in `seq 1 $LEN`; do printf '.'; done 876*62c56f98SSadaf Ebrahimi printf ' ' 877*62c56f98SSadaf Ebrahimi 878*62c56f98SSadaf Ebrahimi} 879*62c56f98SSadaf Ebrahimi 880*62c56f98SSadaf Ebrahimi# record_outcome <outcome> [<failure-reason>] 881*62c56f98SSadaf Ebrahimi# The test name must be in $NAME. 882*62c56f98SSadaf Ebrahimi# Use $TEST_SUITE_NAME as the test suite name if set. 883*62c56f98SSadaf Ebrahimirecord_outcome() { 884*62c56f98SSadaf Ebrahimi echo "$1" 885*62c56f98SSadaf Ebrahimi if [ -n "$MBEDTLS_TEST_OUTCOME_FILE" ]; then 886*62c56f98SSadaf Ebrahimi printf '%s;%s;%s;%s;%s;%s\n' \ 887*62c56f98SSadaf Ebrahimi "$MBEDTLS_TEST_PLATFORM" "$MBEDTLS_TEST_CONFIGURATION" \ 888*62c56f98SSadaf Ebrahimi "${TEST_SUITE_NAME:-ssl-opt}" "$NAME" \ 889*62c56f98SSadaf Ebrahimi "$1" "${2-}" \ 890*62c56f98SSadaf Ebrahimi >>"$MBEDTLS_TEST_OUTCOME_FILE" 891*62c56f98SSadaf Ebrahimi fi 892*62c56f98SSadaf Ebrahimi} 893*62c56f98SSadaf Ebrahimiunset TEST_SUITE_NAME 894*62c56f98SSadaf Ebrahimi 895*62c56f98SSadaf Ebrahimi# True if the presence of the given pattern in a log definitely indicates 896*62c56f98SSadaf Ebrahimi# that the test has failed. False if the presence is inconclusive. 897*62c56f98SSadaf Ebrahimi# 898*62c56f98SSadaf Ebrahimi# Inputs: 899*62c56f98SSadaf Ebrahimi# * $1: pattern found in the logs 900*62c56f98SSadaf Ebrahimi# * $TIMES_LEFT: >0 if retrying is an option 901*62c56f98SSadaf Ebrahimi# 902*62c56f98SSadaf Ebrahimi# Outputs: 903*62c56f98SSadaf Ebrahimi# * $outcome: set to a retry reason if the pattern is inconclusive, 904*62c56f98SSadaf Ebrahimi# unchanged otherwise. 905*62c56f98SSadaf Ebrahimi# * Return value: 1 if the pattern is inconclusive, 906*62c56f98SSadaf Ebrahimi# 0 if the failure is definitive. 907*62c56f98SSadaf Ebrahimilog_pattern_presence_is_conclusive() { 908*62c56f98SSadaf Ebrahimi # If we've run out of attempts, then don't retry no matter what. 909*62c56f98SSadaf Ebrahimi if [ $TIMES_LEFT -eq 0 ]; then 910*62c56f98SSadaf Ebrahimi return 0 911*62c56f98SSadaf Ebrahimi fi 912*62c56f98SSadaf Ebrahimi case $1 in 913*62c56f98SSadaf Ebrahimi "resend") 914*62c56f98SSadaf Ebrahimi # An undesired resend may have been caused by the OS dropping or 915*62c56f98SSadaf Ebrahimi # delaying a packet at an inopportune time. 916*62c56f98SSadaf Ebrahimi outcome="RETRY(resend)" 917*62c56f98SSadaf Ebrahimi return 1;; 918*62c56f98SSadaf Ebrahimi esac 919*62c56f98SSadaf Ebrahimi} 920*62c56f98SSadaf Ebrahimi 921*62c56f98SSadaf Ebrahimi# fail <message> 922*62c56f98SSadaf Ebrahimifail() { 923*62c56f98SSadaf Ebrahimi record_outcome "FAIL" "$1" 924*62c56f98SSadaf Ebrahimi echo " ! $1" 925*62c56f98SSadaf Ebrahimi 926*62c56f98SSadaf Ebrahimi mv $SRV_OUT o-srv-${TESTS}.log 927*62c56f98SSadaf Ebrahimi mv $CLI_OUT o-cli-${TESTS}.log 928*62c56f98SSadaf Ebrahimi if [ -n "$PXY_CMD" ]; then 929*62c56f98SSadaf Ebrahimi mv $PXY_OUT o-pxy-${TESTS}.log 930*62c56f98SSadaf Ebrahimi fi 931*62c56f98SSadaf Ebrahimi echo " ! outputs saved to o-XXX-${TESTS}.log" 932*62c56f98SSadaf Ebrahimi 933*62c56f98SSadaf Ebrahimi if [ "${LOG_FAILURE_ON_STDOUT:-0}" != 0 ]; then 934*62c56f98SSadaf Ebrahimi echo " ! server output:" 935*62c56f98SSadaf Ebrahimi cat o-srv-${TESTS}.log 936*62c56f98SSadaf Ebrahimi echo " ! ========================================================" 937*62c56f98SSadaf Ebrahimi echo " ! client output:" 938*62c56f98SSadaf Ebrahimi cat o-cli-${TESTS}.log 939*62c56f98SSadaf Ebrahimi if [ -n "$PXY_CMD" ]; then 940*62c56f98SSadaf Ebrahimi echo " ! ========================================================" 941*62c56f98SSadaf Ebrahimi echo " ! proxy output:" 942*62c56f98SSadaf Ebrahimi cat o-pxy-${TESTS}.log 943*62c56f98SSadaf Ebrahimi fi 944*62c56f98SSadaf Ebrahimi echo "" 945*62c56f98SSadaf Ebrahimi fi 946*62c56f98SSadaf Ebrahimi 947*62c56f98SSadaf Ebrahimi FAILS=$(( $FAILS + 1 )) 948*62c56f98SSadaf Ebrahimi} 949*62c56f98SSadaf Ebrahimi 950*62c56f98SSadaf Ebrahimi# is_polar <cmd_line> 951*62c56f98SSadaf Ebrahimiis_polar() { 952*62c56f98SSadaf Ebrahimi case "$1" in 953*62c56f98SSadaf Ebrahimi *ssl_client2*) true;; 954*62c56f98SSadaf Ebrahimi *ssl_server2*) true;; 955*62c56f98SSadaf Ebrahimi *) false;; 956*62c56f98SSadaf Ebrahimi esac 957*62c56f98SSadaf Ebrahimi} 958*62c56f98SSadaf Ebrahimi 959*62c56f98SSadaf Ebrahimi# openssl s_server doesn't have -www with DTLS 960*62c56f98SSadaf Ebrahimicheck_osrv_dtls() { 961*62c56f98SSadaf Ebrahimi case "$SRV_CMD" in 962*62c56f98SSadaf Ebrahimi *s_server*-dtls*) 963*62c56f98SSadaf Ebrahimi NEEDS_INPUT=1 964*62c56f98SSadaf Ebrahimi SRV_CMD="$( echo $SRV_CMD | sed s/-www// )";; 965*62c56f98SSadaf Ebrahimi *) NEEDS_INPUT=0;; 966*62c56f98SSadaf Ebrahimi esac 967*62c56f98SSadaf Ebrahimi} 968*62c56f98SSadaf Ebrahimi 969*62c56f98SSadaf Ebrahimi# provide input to commands that need it 970*62c56f98SSadaf Ebrahimiprovide_input() { 971*62c56f98SSadaf Ebrahimi if [ $NEEDS_INPUT -eq 0 ]; then 972*62c56f98SSadaf Ebrahimi return 973*62c56f98SSadaf Ebrahimi fi 974*62c56f98SSadaf Ebrahimi 975*62c56f98SSadaf Ebrahimi while true; do 976*62c56f98SSadaf Ebrahimi echo "HTTP/1.0 200 OK" 977*62c56f98SSadaf Ebrahimi sleep 1 978*62c56f98SSadaf Ebrahimi done 979*62c56f98SSadaf Ebrahimi} 980*62c56f98SSadaf Ebrahimi 981*62c56f98SSadaf Ebrahimi# has_mem_err <log_file_name> 982*62c56f98SSadaf Ebrahimihas_mem_err() { 983*62c56f98SSadaf Ebrahimi if ( grep -F 'All heap blocks were freed -- no leaks are possible' "$1" && 984*62c56f98SSadaf Ebrahimi grep -F 'ERROR SUMMARY: 0 errors from 0 contexts' "$1" ) > /dev/null 985*62c56f98SSadaf Ebrahimi then 986*62c56f98SSadaf Ebrahimi return 1 # false: does not have errors 987*62c56f98SSadaf Ebrahimi else 988*62c56f98SSadaf Ebrahimi return 0 # true: has errors 989*62c56f98SSadaf Ebrahimi fi 990*62c56f98SSadaf Ebrahimi} 991*62c56f98SSadaf Ebrahimi 992*62c56f98SSadaf Ebrahimi# Wait for process $2 named $3 to be listening on port $1. Print error to $4. 993*62c56f98SSadaf Ebrahimiif type lsof >/dev/null 2>/dev/null; then 994*62c56f98SSadaf Ebrahimi wait_app_start() { 995*62c56f98SSadaf Ebrahimi newline=' 996*62c56f98SSadaf Ebrahimi' 997*62c56f98SSadaf Ebrahimi START_TIME=$(date +%s) 998*62c56f98SSadaf Ebrahimi if [ "$DTLS" -eq 1 ]; then 999*62c56f98SSadaf Ebrahimi proto=UDP 1000*62c56f98SSadaf Ebrahimi else 1001*62c56f98SSadaf Ebrahimi proto=TCP 1002*62c56f98SSadaf Ebrahimi fi 1003*62c56f98SSadaf Ebrahimi # Make a tight loop, server normally takes less than 1s to start. 1004*62c56f98SSadaf Ebrahimi while true; do 1005*62c56f98SSadaf Ebrahimi SERVER_PIDS=$(lsof -a -n -b -i "$proto:$1" -t) 1006*62c56f98SSadaf Ebrahimi # When we use a proxy, it will be listening on the same port we 1007*62c56f98SSadaf Ebrahimi # are checking for as well as the server and lsof will list both. 1008*62c56f98SSadaf Ebrahimi case ${newline}${SERVER_PIDS}${newline} in 1009*62c56f98SSadaf Ebrahimi *${newline}${2}${newline}*) break;; 1010*62c56f98SSadaf Ebrahimi esac 1011*62c56f98SSadaf Ebrahimi if [ $(( $(date +%s) - $START_TIME )) -gt $DOG_DELAY ]; then 1012*62c56f98SSadaf Ebrahimi echo "$3 START TIMEOUT" 1013*62c56f98SSadaf Ebrahimi echo "$3 START TIMEOUT" >> $4 1014*62c56f98SSadaf Ebrahimi break 1015*62c56f98SSadaf Ebrahimi fi 1016*62c56f98SSadaf Ebrahimi # Linux and *BSD support decimal arguments to sleep. On other 1017*62c56f98SSadaf Ebrahimi # OSes this may be a tight loop. 1018*62c56f98SSadaf Ebrahimi sleep 0.1 2>/dev/null || true 1019*62c56f98SSadaf Ebrahimi done 1020*62c56f98SSadaf Ebrahimi } 1021*62c56f98SSadaf Ebrahimielse 1022*62c56f98SSadaf Ebrahimi echo "Warning: lsof not available, wait_app_start = sleep" 1023*62c56f98SSadaf Ebrahimi wait_app_start() { 1024*62c56f98SSadaf Ebrahimi sleep "$START_DELAY" 1025*62c56f98SSadaf Ebrahimi } 1026*62c56f98SSadaf Ebrahimifi 1027*62c56f98SSadaf Ebrahimi 1028*62c56f98SSadaf Ebrahimi# Wait for server process $2 to be listening on port $1. 1029*62c56f98SSadaf Ebrahimiwait_server_start() { 1030*62c56f98SSadaf Ebrahimi wait_app_start $1 $2 "SERVER" $SRV_OUT 1031*62c56f98SSadaf Ebrahimi} 1032*62c56f98SSadaf Ebrahimi 1033*62c56f98SSadaf Ebrahimi# Wait for proxy process $2 to be listening on port $1. 1034*62c56f98SSadaf Ebrahimiwait_proxy_start() { 1035*62c56f98SSadaf Ebrahimi wait_app_start $1 $2 "PROXY" $PXY_OUT 1036*62c56f98SSadaf Ebrahimi} 1037*62c56f98SSadaf Ebrahimi 1038*62c56f98SSadaf Ebrahimi# Given the client or server debug output, parse the unix timestamp that is 1039*62c56f98SSadaf Ebrahimi# included in the first 4 bytes of the random bytes and check that it's within 1040*62c56f98SSadaf Ebrahimi# acceptable bounds 1041*62c56f98SSadaf Ebrahimicheck_server_hello_time() { 1042*62c56f98SSadaf Ebrahimi # Extract the time from the debug (lvl 3) output of the client 1043*62c56f98SSadaf Ebrahimi SERVER_HELLO_TIME="$(sed -n 's/.*server hello, current time: //p' < "$1")" 1044*62c56f98SSadaf Ebrahimi # Get the Unix timestamp for now 1045*62c56f98SSadaf Ebrahimi CUR_TIME=$(date +'%s') 1046*62c56f98SSadaf Ebrahimi THRESHOLD_IN_SECS=300 1047*62c56f98SSadaf Ebrahimi 1048*62c56f98SSadaf Ebrahimi # Check if the ServerHello time was printed 1049*62c56f98SSadaf Ebrahimi if [ -z "$SERVER_HELLO_TIME" ]; then 1050*62c56f98SSadaf Ebrahimi return 1 1051*62c56f98SSadaf Ebrahimi fi 1052*62c56f98SSadaf Ebrahimi 1053*62c56f98SSadaf Ebrahimi # Check the time in ServerHello is within acceptable bounds 1054*62c56f98SSadaf Ebrahimi if [ $SERVER_HELLO_TIME -lt $(( $CUR_TIME - $THRESHOLD_IN_SECS )) ]; then 1055*62c56f98SSadaf Ebrahimi # The time in ServerHello is at least 5 minutes before now 1056*62c56f98SSadaf Ebrahimi return 1 1057*62c56f98SSadaf Ebrahimi elif [ $SERVER_HELLO_TIME -gt $(( $CUR_TIME + $THRESHOLD_IN_SECS )) ]; then 1058*62c56f98SSadaf Ebrahimi # The time in ServerHello is at least 5 minutes later than now 1059*62c56f98SSadaf Ebrahimi return 1 1060*62c56f98SSadaf Ebrahimi else 1061*62c56f98SSadaf Ebrahimi return 0 1062*62c56f98SSadaf Ebrahimi fi 1063*62c56f98SSadaf Ebrahimi} 1064*62c56f98SSadaf Ebrahimi 1065*62c56f98SSadaf Ebrahimi# Get handshake memory usage from server or client output and put it into the variable specified by the first argument 1066*62c56f98SSadaf Ebrahimihandshake_memory_get() { 1067*62c56f98SSadaf Ebrahimi OUTPUT_VARIABLE="$1" 1068*62c56f98SSadaf Ebrahimi OUTPUT_FILE="$2" 1069*62c56f98SSadaf Ebrahimi 1070*62c56f98SSadaf Ebrahimi # Get memory usage from a pattern like "Heap memory usage after handshake: 23112 bytes. Peak memory usage was 33112" 1071*62c56f98SSadaf Ebrahimi MEM_USAGE=$(sed -n 's/.*Heap memory usage after handshake: //p' < "$OUTPUT_FILE" | grep -o "[0-9]*" | head -1) 1072*62c56f98SSadaf Ebrahimi 1073*62c56f98SSadaf Ebrahimi # Check if memory usage was read 1074*62c56f98SSadaf Ebrahimi if [ -z "$MEM_USAGE" ]; then 1075*62c56f98SSadaf Ebrahimi echo "Error: Can not read the value of handshake memory usage" 1076*62c56f98SSadaf Ebrahimi return 1 1077*62c56f98SSadaf Ebrahimi else 1078*62c56f98SSadaf Ebrahimi eval "$OUTPUT_VARIABLE=$MEM_USAGE" 1079*62c56f98SSadaf Ebrahimi return 0 1080*62c56f98SSadaf Ebrahimi fi 1081*62c56f98SSadaf Ebrahimi} 1082*62c56f98SSadaf Ebrahimi 1083*62c56f98SSadaf Ebrahimi# Get handshake memory usage from server or client output and check if this value 1084*62c56f98SSadaf Ebrahimi# is not higher than the maximum given by the first argument 1085*62c56f98SSadaf Ebrahimihandshake_memory_check() { 1086*62c56f98SSadaf Ebrahimi MAX_MEMORY="$1" 1087*62c56f98SSadaf Ebrahimi OUTPUT_FILE="$2" 1088*62c56f98SSadaf Ebrahimi 1089*62c56f98SSadaf Ebrahimi # Get memory usage 1090*62c56f98SSadaf Ebrahimi if ! handshake_memory_get "MEMORY_USAGE" "$OUTPUT_FILE"; then 1091*62c56f98SSadaf Ebrahimi return 1 1092*62c56f98SSadaf Ebrahimi fi 1093*62c56f98SSadaf Ebrahimi 1094*62c56f98SSadaf Ebrahimi # Check if memory usage is below max value 1095*62c56f98SSadaf Ebrahimi if [ "$MEMORY_USAGE" -gt "$MAX_MEMORY" ]; then 1096*62c56f98SSadaf Ebrahimi echo "\nFailed: Handshake memory usage was $MEMORY_USAGE bytes," \ 1097*62c56f98SSadaf Ebrahimi "but should be below $MAX_MEMORY bytes" 1098*62c56f98SSadaf Ebrahimi return 1 1099*62c56f98SSadaf Ebrahimi else 1100*62c56f98SSadaf Ebrahimi return 0 1101*62c56f98SSadaf Ebrahimi fi 1102*62c56f98SSadaf Ebrahimi} 1103*62c56f98SSadaf Ebrahimi 1104*62c56f98SSadaf Ebrahimi# wait for client to terminate and set CLI_EXIT 1105*62c56f98SSadaf Ebrahimi# must be called right after starting the client 1106*62c56f98SSadaf Ebrahimiwait_client_done() { 1107*62c56f98SSadaf Ebrahimi CLI_PID=$! 1108*62c56f98SSadaf Ebrahimi 1109*62c56f98SSadaf Ebrahimi CLI_DELAY=$(( $DOG_DELAY * $CLI_DELAY_FACTOR )) 1110*62c56f98SSadaf Ebrahimi CLI_DELAY_FACTOR=1 1111*62c56f98SSadaf Ebrahimi 1112*62c56f98SSadaf Ebrahimi ( sleep $CLI_DELAY; echo "===CLIENT_TIMEOUT===" >> $CLI_OUT; kill $CLI_PID ) & 1113*62c56f98SSadaf Ebrahimi DOG_PID=$! 1114*62c56f98SSadaf Ebrahimi 1115*62c56f98SSadaf Ebrahimi # For Ubuntu 22.04, `Terminated` message is outputed by wait command. 1116*62c56f98SSadaf Ebrahimi # To remove it from stdout, redirect stdout/stderr to CLI_OUT 1117*62c56f98SSadaf Ebrahimi wait $CLI_PID >> $CLI_OUT 2>&1 1118*62c56f98SSadaf Ebrahimi CLI_EXIT=$? 1119*62c56f98SSadaf Ebrahimi 1120*62c56f98SSadaf Ebrahimi kill $DOG_PID >/dev/null 2>&1 1121*62c56f98SSadaf Ebrahimi wait $DOG_PID >> $CLI_OUT 2>&1 1122*62c56f98SSadaf Ebrahimi 1123*62c56f98SSadaf Ebrahimi echo "EXIT: $CLI_EXIT" >> $CLI_OUT 1124*62c56f98SSadaf Ebrahimi 1125*62c56f98SSadaf Ebrahimi sleep $SRV_DELAY_SECONDS 1126*62c56f98SSadaf Ebrahimi SRV_DELAY_SECONDS=0 1127*62c56f98SSadaf Ebrahimi} 1128*62c56f98SSadaf Ebrahimi 1129*62c56f98SSadaf Ebrahimi# check if the given command uses dtls and sets global variable DTLS 1130*62c56f98SSadaf Ebrahimidetect_dtls() { 1131*62c56f98SSadaf Ebrahimi case "$1" in 1132*62c56f98SSadaf Ebrahimi *dtls=1*|*-dtls*|*-u*) DTLS=1;; 1133*62c56f98SSadaf Ebrahimi *) DTLS=0;; 1134*62c56f98SSadaf Ebrahimi esac 1135*62c56f98SSadaf Ebrahimi} 1136*62c56f98SSadaf Ebrahimi 1137*62c56f98SSadaf Ebrahimi# check if the given command uses gnutls and sets global variable CMD_IS_GNUTLS 1138*62c56f98SSadaf Ebrahimiis_gnutls() { 1139*62c56f98SSadaf Ebrahimi case "$1" in 1140*62c56f98SSadaf Ebrahimi *gnutls-cli*) 1141*62c56f98SSadaf Ebrahimi CMD_IS_GNUTLS=1 1142*62c56f98SSadaf Ebrahimi ;; 1143*62c56f98SSadaf Ebrahimi *gnutls-serv*) 1144*62c56f98SSadaf Ebrahimi CMD_IS_GNUTLS=1 1145*62c56f98SSadaf Ebrahimi ;; 1146*62c56f98SSadaf Ebrahimi *) 1147*62c56f98SSadaf Ebrahimi CMD_IS_GNUTLS=0 1148*62c56f98SSadaf Ebrahimi ;; 1149*62c56f98SSadaf Ebrahimi esac 1150*62c56f98SSadaf Ebrahimi} 1151*62c56f98SSadaf Ebrahimi 1152*62c56f98SSadaf Ebrahimi# Some external tools (gnutls or openssl) might not have support for static ECDH 1153*62c56f98SSadaf Ebrahimi# and this limit the tests that can be run with them. This function checks server 1154*62c56f98SSadaf Ebrahimi# and client command lines, given as input, to verify if the current test 1155*62c56f98SSadaf Ebrahimi# is using one of these tools. 1156*62c56f98SSadaf Ebrahimiuse_ext_tool_without_ecdh_support() { 1157*62c56f98SSadaf Ebrahimi case "$1" in 1158*62c56f98SSadaf Ebrahimi *$GNUTLS_SERV*|\ 1159*62c56f98SSadaf Ebrahimi *${GNUTLS_NEXT_SERV:-"gnutls-serv-dummy"}*|\ 1160*62c56f98SSadaf Ebrahimi *${OPENSSL_NEXT:-"openssl-dummy"}*) 1161*62c56f98SSadaf Ebrahimi echo "yes" 1162*62c56f98SSadaf Ebrahimi return;; 1163*62c56f98SSadaf Ebrahimi esac 1164*62c56f98SSadaf Ebrahimi case "$2" in 1165*62c56f98SSadaf Ebrahimi *$GNUTLS_CLI*|\ 1166*62c56f98SSadaf Ebrahimi *${GNUTLS_NEXT_CLI:-"gnutls-cli-dummy"}*|\ 1167*62c56f98SSadaf Ebrahimi *${OPENSSL_NEXT:-"openssl-dummy"}*) 1168*62c56f98SSadaf Ebrahimi echo "yes" 1169*62c56f98SSadaf Ebrahimi return;; 1170*62c56f98SSadaf Ebrahimi esac 1171*62c56f98SSadaf Ebrahimi echo "no" 1172*62c56f98SSadaf Ebrahimi} 1173*62c56f98SSadaf Ebrahimi 1174*62c56f98SSadaf Ebrahimi# Generate random psk_list argument for ssl_server2 1175*62c56f98SSadaf Ebrahimiget_srv_psk_list () 1176*62c56f98SSadaf Ebrahimi{ 1177*62c56f98SSadaf Ebrahimi case $(( TESTS % 3 )) in 1178*62c56f98SSadaf Ebrahimi 0) echo "psk_list=abc,dead,def,beef,Client_identity,6162636465666768696a6b6c6d6e6f70";; 1179*62c56f98SSadaf Ebrahimi 1) echo "psk_list=abc,dead,Client_identity,6162636465666768696a6b6c6d6e6f70,def,beef";; 1180*62c56f98SSadaf Ebrahimi 2) echo "psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef";; 1181*62c56f98SSadaf Ebrahimi esac 1182*62c56f98SSadaf Ebrahimi} 1183*62c56f98SSadaf Ebrahimi 1184*62c56f98SSadaf Ebrahimi# Determine what calc_verify trace is to be expected, if any. 1185*62c56f98SSadaf Ebrahimi# 1186*62c56f98SSadaf Ebrahimi# calc_verify is only called for two things: to calculate the 1187*62c56f98SSadaf Ebrahimi# extended master secret, and to process client authentication. 1188*62c56f98SSadaf Ebrahimi# 1189*62c56f98SSadaf Ebrahimi# Warning: the current implementation assumes that extended_ms is not 1190*62c56f98SSadaf Ebrahimi# disabled on the client or on the server. 1191*62c56f98SSadaf Ebrahimi# 1192*62c56f98SSadaf Ebrahimi# Inputs: 1193*62c56f98SSadaf Ebrahimi# * $1: the value of the server auth_mode parameter. 1194*62c56f98SSadaf Ebrahimi# 'required' if client authentication is expected, 1195*62c56f98SSadaf Ebrahimi# 'none' or absent if not. 1196*62c56f98SSadaf Ebrahimi# * $CONFIGS_ENABLED 1197*62c56f98SSadaf Ebrahimi# 1198*62c56f98SSadaf Ebrahimi# Outputs: 1199*62c56f98SSadaf Ebrahimi# * $maybe_calc_verify: set to a trace expected in the debug logs 1200*62c56f98SSadaf Ebrahimiset_maybe_calc_verify() { 1201*62c56f98SSadaf Ebrahimi maybe_calc_verify= 1202*62c56f98SSadaf Ebrahimi case $CONFIGS_ENABLED in 1203*62c56f98SSadaf Ebrahimi *\ MBEDTLS_SSL_EXTENDED_MASTER_SECRET\ *) :;; 1204*62c56f98SSadaf Ebrahimi *) 1205*62c56f98SSadaf Ebrahimi case ${1-} in 1206*62c56f98SSadaf Ebrahimi ''|none) return;; 1207*62c56f98SSadaf Ebrahimi required) :;; 1208*62c56f98SSadaf Ebrahimi *) echo "Bad parameter 1 to set_maybe_calc_verify: $1"; exit 1;; 1209*62c56f98SSadaf Ebrahimi esac 1210*62c56f98SSadaf Ebrahimi esac 1211*62c56f98SSadaf Ebrahimi case $CONFIGS_ENABLED in 1212*62c56f98SSadaf Ebrahimi *\ MBEDTLS_USE_PSA_CRYPTO\ *) maybe_calc_verify="PSA calc verify";; 1213*62c56f98SSadaf Ebrahimi *) maybe_calc_verify="<= calc verify";; 1214*62c56f98SSadaf Ebrahimi esac 1215*62c56f98SSadaf Ebrahimi} 1216*62c56f98SSadaf Ebrahimi 1217*62c56f98SSadaf Ebrahimi# Compare file content 1218*62c56f98SSadaf Ebrahimi# Usage: find_in_both pattern file1 file2 1219*62c56f98SSadaf Ebrahimi# extract from file1 the first line matching the pattern 1220*62c56f98SSadaf Ebrahimi# check in file2 that the same line can be found 1221*62c56f98SSadaf Ebrahimifind_in_both() { 1222*62c56f98SSadaf Ebrahimi srv_pattern=$(grep -m 1 "$1" "$2"); 1223*62c56f98SSadaf Ebrahimi if [ -z "$srv_pattern" ]; then 1224*62c56f98SSadaf Ebrahimi return 1; 1225*62c56f98SSadaf Ebrahimi fi 1226*62c56f98SSadaf Ebrahimi 1227*62c56f98SSadaf Ebrahimi if grep "$srv_pattern" $3 >/dev/null; then : 1228*62c56f98SSadaf Ebrahimi return 0; 1229*62c56f98SSadaf Ebrahimi else 1230*62c56f98SSadaf Ebrahimi return 1; 1231*62c56f98SSadaf Ebrahimi fi 1232*62c56f98SSadaf Ebrahimi} 1233*62c56f98SSadaf Ebrahimi 1234*62c56f98SSadaf EbrahimiSKIP_HANDSHAKE_CHECK="NO" 1235*62c56f98SSadaf Ebrahimiskip_handshake_stage_check() { 1236*62c56f98SSadaf Ebrahimi SKIP_HANDSHAKE_CHECK="YES" 1237*62c56f98SSadaf Ebrahimi} 1238*62c56f98SSadaf Ebrahimi 1239*62c56f98SSadaf Ebrahimi# Analyze the commands that will be used in a test. 1240*62c56f98SSadaf Ebrahimi# 1241*62c56f98SSadaf Ebrahimi# Analyze and possibly instrument $PXY_CMD, $CLI_CMD, $SRV_CMD to pass 1242*62c56f98SSadaf Ebrahimi# extra arguments or go through wrappers. 1243*62c56f98SSadaf Ebrahimi# 1244*62c56f98SSadaf Ebrahimi# Inputs: 1245*62c56f98SSadaf Ebrahimi# * $@: supplemental options to run_test() (after the mandatory arguments). 1246*62c56f98SSadaf Ebrahimi# * $CLI_CMD, $PXY_CMD, $SRV_CMD: the client, proxy and server commands. 1247*62c56f98SSadaf Ebrahimi# * $DTLS: 1 if DTLS, otherwise 0. 1248*62c56f98SSadaf Ebrahimi# 1249*62c56f98SSadaf Ebrahimi# Outputs: 1250*62c56f98SSadaf Ebrahimi# * $CLI_CMD, $PXY_CMD, $SRV_CMD: may be tweaked. 1251*62c56f98SSadaf Ebrahimianalyze_test_commands() { 1252*62c56f98SSadaf Ebrahimi # if the test uses DTLS but no custom proxy, add a simple proxy 1253*62c56f98SSadaf Ebrahimi # as it provides timing info that's useful to debug failures 1254*62c56f98SSadaf Ebrahimi if [ -z "$PXY_CMD" ] && [ "$DTLS" -eq 1 ]; then 1255*62c56f98SSadaf Ebrahimi PXY_CMD="$P_PXY" 1256*62c56f98SSadaf Ebrahimi case " $SRV_CMD " in 1257*62c56f98SSadaf Ebrahimi *' server_addr=::1 '*) 1258*62c56f98SSadaf Ebrahimi PXY_CMD="$PXY_CMD server_addr=::1 listen_addr=::1";; 1259*62c56f98SSadaf Ebrahimi esac 1260*62c56f98SSadaf Ebrahimi fi 1261*62c56f98SSadaf Ebrahimi 1262*62c56f98SSadaf Ebrahimi # update CMD_IS_GNUTLS variable 1263*62c56f98SSadaf Ebrahimi is_gnutls "$SRV_CMD" 1264*62c56f98SSadaf Ebrahimi 1265*62c56f98SSadaf Ebrahimi # if the server uses gnutls but doesn't set priority, explicitly 1266*62c56f98SSadaf Ebrahimi # set the default priority 1267*62c56f98SSadaf Ebrahimi if [ "$CMD_IS_GNUTLS" -eq 1 ]; then 1268*62c56f98SSadaf Ebrahimi case "$SRV_CMD" in 1269*62c56f98SSadaf Ebrahimi *--priority*) :;; 1270*62c56f98SSadaf Ebrahimi *) SRV_CMD="$SRV_CMD --priority=NORMAL";; 1271*62c56f98SSadaf Ebrahimi esac 1272*62c56f98SSadaf Ebrahimi fi 1273*62c56f98SSadaf Ebrahimi 1274*62c56f98SSadaf Ebrahimi # update CMD_IS_GNUTLS variable 1275*62c56f98SSadaf Ebrahimi is_gnutls "$CLI_CMD" 1276*62c56f98SSadaf Ebrahimi 1277*62c56f98SSadaf Ebrahimi # if the client uses gnutls but doesn't set priority, explicitly 1278*62c56f98SSadaf Ebrahimi # set the default priority 1279*62c56f98SSadaf Ebrahimi if [ "$CMD_IS_GNUTLS" -eq 1 ]; then 1280*62c56f98SSadaf Ebrahimi case "$CLI_CMD" in 1281*62c56f98SSadaf Ebrahimi *--priority*) :;; 1282*62c56f98SSadaf Ebrahimi *) CLI_CMD="$CLI_CMD --priority=NORMAL";; 1283*62c56f98SSadaf Ebrahimi esac 1284*62c56f98SSadaf Ebrahimi fi 1285*62c56f98SSadaf Ebrahimi 1286*62c56f98SSadaf Ebrahimi # fix client port 1287*62c56f98SSadaf Ebrahimi if [ -n "$PXY_CMD" ]; then 1288*62c56f98SSadaf Ebrahimi CLI_CMD=$( echo "$CLI_CMD" | sed s/+SRV_PORT/$PXY_PORT/g ) 1289*62c56f98SSadaf Ebrahimi else 1290*62c56f98SSadaf Ebrahimi CLI_CMD=$( echo "$CLI_CMD" | sed s/+SRV_PORT/$SRV_PORT/g ) 1291*62c56f98SSadaf Ebrahimi fi 1292*62c56f98SSadaf Ebrahimi 1293*62c56f98SSadaf Ebrahimi # prepend valgrind to our commands if active 1294*62c56f98SSadaf Ebrahimi if [ "$MEMCHECK" -gt 0 ]; then 1295*62c56f98SSadaf Ebrahimi if is_polar "$SRV_CMD"; then 1296*62c56f98SSadaf Ebrahimi SRV_CMD="valgrind --leak-check=full $SRV_CMD" 1297*62c56f98SSadaf Ebrahimi fi 1298*62c56f98SSadaf Ebrahimi if is_polar "$CLI_CMD"; then 1299*62c56f98SSadaf Ebrahimi CLI_CMD="valgrind --leak-check=full $CLI_CMD" 1300*62c56f98SSadaf Ebrahimi fi 1301*62c56f98SSadaf Ebrahimi fi 1302*62c56f98SSadaf Ebrahimi} 1303*62c56f98SSadaf Ebrahimi 1304*62c56f98SSadaf Ebrahimi# Check for failure conditions after a test case. 1305*62c56f98SSadaf Ebrahimi# 1306*62c56f98SSadaf Ebrahimi# Inputs from run_test: 1307*62c56f98SSadaf Ebrahimi# * positional parameters: test options (see run_test documentation) 1308*62c56f98SSadaf Ebrahimi# * $CLI_EXIT: client return code 1309*62c56f98SSadaf Ebrahimi# * $CLI_EXPECT: expected client return code 1310*62c56f98SSadaf Ebrahimi# * $SRV_RET: server return code 1311*62c56f98SSadaf Ebrahimi# * $CLI_OUT, $SRV_OUT, $PXY_OUT: files containing client/server/proxy logs 1312*62c56f98SSadaf Ebrahimi# * $TIMES_LEFT: if nonzero, a RETRY outcome is allowed 1313*62c56f98SSadaf Ebrahimi# 1314*62c56f98SSadaf Ebrahimi# Outputs: 1315*62c56f98SSadaf Ebrahimi# * $outcome: one of PASS/RETRY*/FAIL 1316*62c56f98SSadaf Ebrahimicheck_test_failure() { 1317*62c56f98SSadaf Ebrahimi outcome=FAIL 1318*62c56f98SSadaf Ebrahimi 1319*62c56f98SSadaf Ebrahimi if [ $TIMES_LEFT -gt 0 ] && 1320*62c56f98SSadaf Ebrahimi grep '===CLIENT_TIMEOUT===' $CLI_OUT >/dev/null 1321*62c56f98SSadaf Ebrahimi then 1322*62c56f98SSadaf Ebrahimi outcome="RETRY(client-timeout)" 1323*62c56f98SSadaf Ebrahimi return 1324*62c56f98SSadaf Ebrahimi fi 1325*62c56f98SSadaf Ebrahimi 1326*62c56f98SSadaf Ebrahimi # check if the client and server went at least to the handshake stage 1327*62c56f98SSadaf Ebrahimi # (useful to avoid tests with only negative assertions and non-zero 1328*62c56f98SSadaf Ebrahimi # expected client exit to incorrectly succeed in case of catastrophic 1329*62c56f98SSadaf Ebrahimi # failure) 1330*62c56f98SSadaf Ebrahimi if [ "X$SKIP_HANDSHAKE_CHECK" != "XYES" ] 1331*62c56f98SSadaf Ebrahimi then 1332*62c56f98SSadaf Ebrahimi if is_polar "$SRV_CMD"; then 1333*62c56f98SSadaf Ebrahimi if grep "Performing the SSL/TLS handshake" $SRV_OUT >/dev/null; then :; 1334*62c56f98SSadaf Ebrahimi else 1335*62c56f98SSadaf Ebrahimi fail "server or client failed to reach handshake stage" 1336*62c56f98SSadaf Ebrahimi return 1337*62c56f98SSadaf Ebrahimi fi 1338*62c56f98SSadaf Ebrahimi fi 1339*62c56f98SSadaf Ebrahimi if is_polar "$CLI_CMD"; then 1340*62c56f98SSadaf Ebrahimi if grep "Performing the SSL/TLS handshake" $CLI_OUT >/dev/null; then :; 1341*62c56f98SSadaf Ebrahimi else 1342*62c56f98SSadaf Ebrahimi fail "server or client failed to reach handshake stage" 1343*62c56f98SSadaf Ebrahimi return 1344*62c56f98SSadaf Ebrahimi fi 1345*62c56f98SSadaf Ebrahimi fi 1346*62c56f98SSadaf Ebrahimi fi 1347*62c56f98SSadaf Ebrahimi 1348*62c56f98SSadaf Ebrahimi SKIP_HANDSHAKE_CHECK="NO" 1349*62c56f98SSadaf Ebrahimi # Check server exit code (only for Mbed TLS: GnuTLS and OpenSSL don't 1350*62c56f98SSadaf Ebrahimi # exit with status 0 when interrupted by a signal, and we don't really 1351*62c56f98SSadaf Ebrahimi # care anyway), in case e.g. the server reports a memory leak. 1352*62c56f98SSadaf Ebrahimi if [ $SRV_RET != 0 ] && is_polar "$SRV_CMD"; then 1353*62c56f98SSadaf Ebrahimi fail "Server exited with status $SRV_RET" 1354*62c56f98SSadaf Ebrahimi return 1355*62c56f98SSadaf Ebrahimi fi 1356*62c56f98SSadaf Ebrahimi 1357*62c56f98SSadaf Ebrahimi # check client exit code 1358*62c56f98SSadaf Ebrahimi if [ \( "$CLI_EXPECT" = 0 -a "$CLI_EXIT" != 0 \) -o \ 1359*62c56f98SSadaf Ebrahimi \( "$CLI_EXPECT" != 0 -a "$CLI_EXIT" = 0 \) ] 1360*62c56f98SSadaf Ebrahimi then 1361*62c56f98SSadaf Ebrahimi fail "bad client exit code (expected $CLI_EXPECT, got $CLI_EXIT)" 1362*62c56f98SSadaf Ebrahimi return 1363*62c56f98SSadaf Ebrahimi fi 1364*62c56f98SSadaf Ebrahimi 1365*62c56f98SSadaf Ebrahimi # check other assertions 1366*62c56f98SSadaf Ebrahimi # lines beginning with == are added by valgrind, ignore them 1367*62c56f98SSadaf Ebrahimi # lines with 'Serious error when reading debug info', are valgrind issues as well 1368*62c56f98SSadaf Ebrahimi while [ $# -gt 0 ] 1369*62c56f98SSadaf Ebrahimi do 1370*62c56f98SSadaf Ebrahimi case $1 in 1371*62c56f98SSadaf Ebrahimi "-s") 1372*62c56f98SSadaf Ebrahimi if grep -v '^==' $SRV_OUT | grep -v 'Serious error when reading debug info' | grep "$2" >/dev/null; then :; else 1373*62c56f98SSadaf Ebrahimi fail "pattern '$2' MUST be present in the Server output" 1374*62c56f98SSadaf Ebrahimi return 1375*62c56f98SSadaf Ebrahimi fi 1376*62c56f98SSadaf Ebrahimi ;; 1377*62c56f98SSadaf Ebrahimi 1378*62c56f98SSadaf Ebrahimi "-c") 1379*62c56f98SSadaf Ebrahimi if grep -v '^==' $CLI_OUT | grep -v 'Serious error when reading debug info' | grep "$2" >/dev/null; then :; else 1380*62c56f98SSadaf Ebrahimi fail "pattern '$2' MUST be present in the Client output" 1381*62c56f98SSadaf Ebrahimi return 1382*62c56f98SSadaf Ebrahimi fi 1383*62c56f98SSadaf Ebrahimi ;; 1384*62c56f98SSadaf Ebrahimi 1385*62c56f98SSadaf Ebrahimi "-S") 1386*62c56f98SSadaf Ebrahimi if grep -v '^==' $SRV_OUT | grep -v 'Serious error when reading debug info' | grep "$2" >/dev/null; then 1387*62c56f98SSadaf Ebrahimi if log_pattern_presence_is_conclusive "$2"; then 1388*62c56f98SSadaf Ebrahimi fail "pattern '$2' MUST NOT be present in the Server output" 1389*62c56f98SSadaf Ebrahimi fi 1390*62c56f98SSadaf Ebrahimi return 1391*62c56f98SSadaf Ebrahimi fi 1392*62c56f98SSadaf Ebrahimi ;; 1393*62c56f98SSadaf Ebrahimi 1394*62c56f98SSadaf Ebrahimi "-C") 1395*62c56f98SSadaf Ebrahimi if grep -v '^==' $CLI_OUT | grep -v 'Serious error when reading debug info' | grep "$2" >/dev/null; then 1396*62c56f98SSadaf Ebrahimi if log_pattern_presence_is_conclusive "$2"; then 1397*62c56f98SSadaf Ebrahimi fail "pattern '$2' MUST NOT be present in the Client output" 1398*62c56f98SSadaf Ebrahimi fi 1399*62c56f98SSadaf Ebrahimi return 1400*62c56f98SSadaf Ebrahimi fi 1401*62c56f98SSadaf Ebrahimi ;; 1402*62c56f98SSadaf Ebrahimi 1403*62c56f98SSadaf Ebrahimi # The filtering in the following two options (-u and -U) do the following 1404*62c56f98SSadaf Ebrahimi # - ignore valgrind output 1405*62c56f98SSadaf Ebrahimi # - filter out everything but lines right after the pattern occurrences 1406*62c56f98SSadaf Ebrahimi # - keep one of each non-unique line 1407*62c56f98SSadaf Ebrahimi # - count how many lines remain 1408*62c56f98SSadaf Ebrahimi # A line with '--' will remain in the result from previous outputs, so the number of lines in the result will be 1 1409*62c56f98SSadaf Ebrahimi # if there were no duplicates. 1410*62c56f98SSadaf Ebrahimi "-U") 1411*62c56f98SSadaf Ebrahimi if [ $(grep -v '^==' $SRV_OUT | grep -v 'Serious error when reading debug info' | grep -A1 "$2" | grep -v "$2" | sort | uniq -d | wc -l) -gt 1 ]; then 1412*62c56f98SSadaf Ebrahimi fail "lines following pattern '$2' must be unique in Server output" 1413*62c56f98SSadaf Ebrahimi return 1414*62c56f98SSadaf Ebrahimi fi 1415*62c56f98SSadaf Ebrahimi ;; 1416*62c56f98SSadaf Ebrahimi 1417*62c56f98SSadaf Ebrahimi "-u") 1418*62c56f98SSadaf Ebrahimi if [ $(grep -v '^==' $CLI_OUT | grep -v 'Serious error when reading debug info' | grep -A1 "$2" | grep -v "$2" | sort | uniq -d | wc -l) -gt 1 ]; then 1419*62c56f98SSadaf Ebrahimi fail "lines following pattern '$2' must be unique in Client output" 1420*62c56f98SSadaf Ebrahimi return 1421*62c56f98SSadaf Ebrahimi fi 1422*62c56f98SSadaf Ebrahimi ;; 1423*62c56f98SSadaf Ebrahimi "-F") 1424*62c56f98SSadaf Ebrahimi if ! $2 "$SRV_OUT"; then 1425*62c56f98SSadaf Ebrahimi fail "function call to '$2' failed on Server output" 1426*62c56f98SSadaf Ebrahimi return 1427*62c56f98SSadaf Ebrahimi fi 1428*62c56f98SSadaf Ebrahimi ;; 1429*62c56f98SSadaf Ebrahimi "-f") 1430*62c56f98SSadaf Ebrahimi if ! $2 "$CLI_OUT"; then 1431*62c56f98SSadaf Ebrahimi fail "function call to '$2' failed on Client output" 1432*62c56f98SSadaf Ebrahimi return 1433*62c56f98SSadaf Ebrahimi fi 1434*62c56f98SSadaf Ebrahimi ;; 1435*62c56f98SSadaf Ebrahimi "-g") 1436*62c56f98SSadaf Ebrahimi if ! eval "$2 '$SRV_OUT' '$CLI_OUT'"; then 1437*62c56f98SSadaf Ebrahimi fail "function call to '$2' failed on Server and Client output" 1438*62c56f98SSadaf Ebrahimi return 1439*62c56f98SSadaf Ebrahimi fi 1440*62c56f98SSadaf Ebrahimi ;; 1441*62c56f98SSadaf Ebrahimi 1442*62c56f98SSadaf Ebrahimi *) 1443*62c56f98SSadaf Ebrahimi echo "Unknown test: $1" >&2 1444*62c56f98SSadaf Ebrahimi exit 1 1445*62c56f98SSadaf Ebrahimi esac 1446*62c56f98SSadaf Ebrahimi shift 2 1447*62c56f98SSadaf Ebrahimi done 1448*62c56f98SSadaf Ebrahimi 1449*62c56f98SSadaf Ebrahimi # check valgrind's results 1450*62c56f98SSadaf Ebrahimi if [ "$MEMCHECK" -gt 0 ]; then 1451*62c56f98SSadaf Ebrahimi if is_polar "$SRV_CMD" && has_mem_err $SRV_OUT; then 1452*62c56f98SSadaf Ebrahimi fail "Server has memory errors" 1453*62c56f98SSadaf Ebrahimi return 1454*62c56f98SSadaf Ebrahimi fi 1455*62c56f98SSadaf Ebrahimi if is_polar "$CLI_CMD" && has_mem_err $CLI_OUT; then 1456*62c56f98SSadaf Ebrahimi fail "Client has memory errors" 1457*62c56f98SSadaf Ebrahimi return 1458*62c56f98SSadaf Ebrahimi fi 1459*62c56f98SSadaf Ebrahimi fi 1460*62c56f98SSadaf Ebrahimi 1461*62c56f98SSadaf Ebrahimi # if we're here, everything is ok 1462*62c56f98SSadaf Ebrahimi outcome=PASS 1463*62c56f98SSadaf Ebrahimi} 1464*62c56f98SSadaf Ebrahimi 1465*62c56f98SSadaf Ebrahimi# Run the current test case: start the server and if applicable the proxy, run 1466*62c56f98SSadaf Ebrahimi# the client, wait for all processes to finish or time out. 1467*62c56f98SSadaf Ebrahimi# 1468*62c56f98SSadaf Ebrahimi# Inputs: 1469*62c56f98SSadaf Ebrahimi# * $NAME: test case name 1470*62c56f98SSadaf Ebrahimi# * $CLI_CMD, $SRV_CMD, $PXY_CMD: commands to run 1471*62c56f98SSadaf Ebrahimi# * $CLI_OUT, $SRV_OUT, $PXY_OUT: files to contain client/server/proxy logs 1472*62c56f98SSadaf Ebrahimi# 1473*62c56f98SSadaf Ebrahimi# Outputs: 1474*62c56f98SSadaf Ebrahimi# * $CLI_EXIT: client return code 1475*62c56f98SSadaf Ebrahimi# * $SRV_RET: server return code 1476*62c56f98SSadaf Ebrahimido_run_test_once() { 1477*62c56f98SSadaf Ebrahimi # run the commands 1478*62c56f98SSadaf Ebrahimi if [ -n "$PXY_CMD" ]; then 1479*62c56f98SSadaf Ebrahimi printf "# %s\n%s\n" "$NAME" "$PXY_CMD" > $PXY_OUT 1480*62c56f98SSadaf Ebrahimi $PXY_CMD >> $PXY_OUT 2>&1 & 1481*62c56f98SSadaf Ebrahimi PXY_PID=$! 1482*62c56f98SSadaf Ebrahimi wait_proxy_start "$PXY_PORT" "$PXY_PID" 1483*62c56f98SSadaf Ebrahimi fi 1484*62c56f98SSadaf Ebrahimi 1485*62c56f98SSadaf Ebrahimi check_osrv_dtls 1486*62c56f98SSadaf Ebrahimi printf '# %s\n%s\n' "$NAME" "$SRV_CMD" > $SRV_OUT 1487*62c56f98SSadaf Ebrahimi provide_input | $SRV_CMD >> $SRV_OUT 2>&1 & 1488*62c56f98SSadaf Ebrahimi SRV_PID=$! 1489*62c56f98SSadaf Ebrahimi wait_server_start "$SRV_PORT" "$SRV_PID" 1490*62c56f98SSadaf Ebrahimi 1491*62c56f98SSadaf Ebrahimi printf '# %s\n%s\n' "$NAME" "$CLI_CMD" > $CLI_OUT 1492*62c56f98SSadaf Ebrahimi # The client must be a subprocess of the script in order for killing it to 1493*62c56f98SSadaf Ebrahimi # work properly, that's why the ampersand is placed inside the eval command, 1494*62c56f98SSadaf Ebrahimi # not at the end of the line: the latter approach will spawn eval as a 1495*62c56f98SSadaf Ebrahimi # subprocess, and the $CLI_CMD as a grandchild. 1496*62c56f98SSadaf Ebrahimi eval "$CLI_CMD &" >> $CLI_OUT 2>&1 1497*62c56f98SSadaf Ebrahimi wait_client_done 1498*62c56f98SSadaf Ebrahimi 1499*62c56f98SSadaf Ebrahimi sleep 0.05 1500*62c56f98SSadaf Ebrahimi 1501*62c56f98SSadaf Ebrahimi # terminate the server (and the proxy) 1502*62c56f98SSadaf Ebrahimi kill $SRV_PID 1503*62c56f98SSadaf Ebrahimi # For Ubuntu 22.04, `Terminated` message is outputed by wait command. 1504*62c56f98SSadaf Ebrahimi # To remove it from stdout, redirect stdout/stderr to SRV_OUT 1505*62c56f98SSadaf Ebrahimi wait $SRV_PID >> $SRV_OUT 2>&1 1506*62c56f98SSadaf Ebrahimi SRV_RET=$? 1507*62c56f98SSadaf Ebrahimi 1508*62c56f98SSadaf Ebrahimi if [ -n "$PXY_CMD" ]; then 1509*62c56f98SSadaf Ebrahimi kill $PXY_PID >/dev/null 2>&1 1510*62c56f98SSadaf Ebrahimi wait $PXY_PID >> $PXY_OUT 2>&1 1511*62c56f98SSadaf Ebrahimi fi 1512*62c56f98SSadaf Ebrahimi} 1513*62c56f98SSadaf Ebrahimi 1514*62c56f98SSadaf Ebrahimi# Detect if the current test is going to use TLS 1.3 or TLS 1.2. 1515*62c56f98SSadaf Ebrahimi# $1 and $2 contain the server and client command lines, respectively. 1516*62c56f98SSadaf Ebrahimi# 1517*62c56f98SSadaf Ebrahimi# Note: this function only provides some guess about TLS version by simply 1518*62c56f98SSadaf Ebrahimi# looking at the server/client command lines. Even thought this works 1519*62c56f98SSadaf Ebrahimi# for the sake of tests' filtering (especially in conjunction with the 1520*62c56f98SSadaf Ebrahimi# detect_required_features() function), it does NOT guarantee that the 1521*62c56f98SSadaf Ebrahimi# result is accurate. It does not check other conditions, such as: 1522*62c56f98SSadaf Ebrahimi# - we can force a ciphersuite which contains "WITH" in its name, meaning 1523*62c56f98SSadaf Ebrahimi# that we are going to use TLS 1.2 1524*62c56f98SSadaf Ebrahimi# - etc etc 1525*62c56f98SSadaf Ebrahimiget_tls_version() { 1526*62c56f98SSadaf Ebrahimi # First check if the version is forced on an Mbed TLS peer 1527*62c56f98SSadaf Ebrahimi case $1 in 1528*62c56f98SSadaf Ebrahimi *tls12*) 1529*62c56f98SSadaf Ebrahimi echo "TLS12" 1530*62c56f98SSadaf Ebrahimi return;; 1531*62c56f98SSadaf Ebrahimi *tls13*) 1532*62c56f98SSadaf Ebrahimi echo "TLS13" 1533*62c56f98SSadaf Ebrahimi return;; 1534*62c56f98SSadaf Ebrahimi esac 1535*62c56f98SSadaf Ebrahimi case $2 in 1536*62c56f98SSadaf Ebrahimi *tls12*) 1537*62c56f98SSadaf Ebrahimi echo "TLS12" 1538*62c56f98SSadaf Ebrahimi return;; 1539*62c56f98SSadaf Ebrahimi *tls13*) 1540*62c56f98SSadaf Ebrahimi echo "TLS13" 1541*62c56f98SSadaf Ebrahimi return;; 1542*62c56f98SSadaf Ebrahimi esac 1543*62c56f98SSadaf Ebrahimi # Second check if the version is forced on an OpenSSL or GnuTLS peer 1544*62c56f98SSadaf Ebrahimi case $1 in 1545*62c56f98SSadaf Ebrahimi tls1_2*) 1546*62c56f98SSadaf Ebrahimi echo "TLS12" 1547*62c56f98SSadaf Ebrahimi return;; 1548*62c56f98SSadaf Ebrahimi *tls1_3) 1549*62c56f98SSadaf Ebrahimi echo "TLS13" 1550*62c56f98SSadaf Ebrahimi return;; 1551*62c56f98SSadaf Ebrahimi esac 1552*62c56f98SSadaf Ebrahimi case $2 in 1553*62c56f98SSadaf Ebrahimi *tls1_2) 1554*62c56f98SSadaf Ebrahimi echo "TLS12" 1555*62c56f98SSadaf Ebrahimi return;; 1556*62c56f98SSadaf Ebrahimi *tls1_3) 1557*62c56f98SSadaf Ebrahimi echo "TLS13" 1558*62c56f98SSadaf Ebrahimi return;; 1559*62c56f98SSadaf Ebrahimi esac 1560*62c56f98SSadaf Ebrahimi # Third if the version is not forced, if TLS 1.3 is enabled then the test 1561*62c56f98SSadaf Ebrahimi # is aimed to run a TLS 1.3 handshake. 1562*62c56f98SSadaf Ebrahimi if $P_QUERY -all MBEDTLS_SSL_PROTO_TLS1_3 1563*62c56f98SSadaf Ebrahimi then 1564*62c56f98SSadaf Ebrahimi echo "TLS13" 1565*62c56f98SSadaf Ebrahimi else 1566*62c56f98SSadaf Ebrahimi echo "TLS12" 1567*62c56f98SSadaf Ebrahimi fi 1568*62c56f98SSadaf Ebrahimi} 1569*62c56f98SSadaf Ebrahimi 1570*62c56f98SSadaf Ebrahimi# Usage: run_test name [-p proxy_cmd] srv_cmd cli_cmd cli_exit [option [...]] 1571*62c56f98SSadaf Ebrahimi# Options: -s pattern pattern that must be present in server output 1572*62c56f98SSadaf Ebrahimi# -c pattern pattern that must be present in client output 1573*62c56f98SSadaf Ebrahimi# -u pattern lines after pattern must be unique in client output 1574*62c56f98SSadaf Ebrahimi# -f call shell function on client output 1575*62c56f98SSadaf Ebrahimi# -S pattern pattern that must be absent in server output 1576*62c56f98SSadaf Ebrahimi# -C pattern pattern that must be absent in client output 1577*62c56f98SSadaf Ebrahimi# -U pattern lines after pattern must be unique in server output 1578*62c56f98SSadaf Ebrahimi# -F call shell function on server output 1579*62c56f98SSadaf Ebrahimi# -g call shell function on server and client output 1580*62c56f98SSadaf Ebrahimirun_test() { 1581*62c56f98SSadaf Ebrahimi NAME="$1" 1582*62c56f98SSadaf Ebrahimi shift 1 1583*62c56f98SSadaf Ebrahimi 1584*62c56f98SSadaf Ebrahimi if is_excluded "$NAME"; then 1585*62c56f98SSadaf Ebrahimi SKIP_NEXT="NO" 1586*62c56f98SSadaf Ebrahimi # There was no request to run the test, so don't record its outcome. 1587*62c56f98SSadaf Ebrahimi return 1588*62c56f98SSadaf Ebrahimi fi 1589*62c56f98SSadaf Ebrahimi 1590*62c56f98SSadaf Ebrahimi print_name "$NAME" 1591*62c56f98SSadaf Ebrahimi 1592*62c56f98SSadaf Ebrahimi # Do we only run numbered tests? 1593*62c56f98SSadaf Ebrahimi if [ -n "$RUN_TEST_NUMBER" ]; then 1594*62c56f98SSadaf Ebrahimi case ",$RUN_TEST_NUMBER," in 1595*62c56f98SSadaf Ebrahimi *",$TESTS,"*) :;; 1596*62c56f98SSadaf Ebrahimi *) SKIP_NEXT="YES";; 1597*62c56f98SSadaf Ebrahimi esac 1598*62c56f98SSadaf Ebrahimi fi 1599*62c56f98SSadaf Ebrahimi 1600*62c56f98SSadaf Ebrahimi # does this test use a proxy? 1601*62c56f98SSadaf Ebrahimi if [ "X$1" = "X-p" ]; then 1602*62c56f98SSadaf Ebrahimi PXY_CMD="$2" 1603*62c56f98SSadaf Ebrahimi shift 2 1604*62c56f98SSadaf Ebrahimi else 1605*62c56f98SSadaf Ebrahimi PXY_CMD="" 1606*62c56f98SSadaf Ebrahimi fi 1607*62c56f98SSadaf Ebrahimi 1608*62c56f98SSadaf Ebrahimi # get commands and client output 1609*62c56f98SSadaf Ebrahimi SRV_CMD="$1" 1610*62c56f98SSadaf Ebrahimi CLI_CMD="$2" 1611*62c56f98SSadaf Ebrahimi CLI_EXPECT="$3" 1612*62c56f98SSadaf Ebrahimi shift 3 1613*62c56f98SSadaf Ebrahimi 1614*62c56f98SSadaf Ebrahimi # Check if test uses files 1615*62c56f98SSadaf Ebrahimi case "$SRV_CMD $CLI_CMD" in 1616*62c56f98SSadaf Ebrahimi *data_files/*) 1617*62c56f98SSadaf Ebrahimi requires_config_enabled MBEDTLS_FS_IO;; 1618*62c56f98SSadaf Ebrahimi esac 1619*62c56f98SSadaf Ebrahimi 1620*62c56f98SSadaf Ebrahimi # Check if the test uses DTLS. 1621*62c56f98SSadaf Ebrahimi detect_dtls "$SRV_CMD" 1622*62c56f98SSadaf Ebrahimi if [ "$DTLS" -eq 1 ]; then 1623*62c56f98SSadaf Ebrahimi requires_config_enabled MBEDTLS_SSL_PROTO_DTLS 1624*62c56f98SSadaf Ebrahimi fi 1625*62c56f98SSadaf Ebrahimi 1626*62c56f98SSadaf Ebrahimi # Check if we are trying to use an external tool wich does not support ECDH 1627*62c56f98SSadaf Ebrahimi EXT_WO_ECDH=$(use_ext_tool_without_ecdh_support "$SRV_CMD" "$CLI_CMD") 1628*62c56f98SSadaf Ebrahimi 1629*62c56f98SSadaf Ebrahimi # Guess the TLS version which is going to be used 1630*62c56f98SSadaf Ebrahimi if [ "$EXT_WO_ECDH" = "no" ]; then 1631*62c56f98SSadaf Ebrahimi TLS_VERSION=$(get_tls_version "$SRV_CMD" "$CLI_CMD") 1632*62c56f98SSadaf Ebrahimi else 1633*62c56f98SSadaf Ebrahimi TLS_VERSION="TLS12" 1634*62c56f98SSadaf Ebrahimi fi 1635*62c56f98SSadaf Ebrahimi 1636*62c56f98SSadaf Ebrahimi # If the client or server requires certain features that can be detected 1637*62c56f98SSadaf Ebrahimi # from their command-line arguments, check whether they're enabled. 1638*62c56f98SSadaf Ebrahimi detect_required_features "$SRV_CMD" "server" "$TLS_VERSION" "$EXT_WO_ECDH" "$@" 1639*62c56f98SSadaf Ebrahimi detect_required_features "$CLI_CMD" "client" "$TLS_VERSION" "$EXT_WO_ECDH" "$@" 1640*62c56f98SSadaf Ebrahimi 1641*62c56f98SSadaf Ebrahimi # If we're in a PSK-only build and the test can be adapted to PSK, do that. 1642*62c56f98SSadaf Ebrahimi maybe_adapt_for_psk "$@" 1643*62c56f98SSadaf Ebrahimi 1644*62c56f98SSadaf Ebrahimi # should we skip? 1645*62c56f98SSadaf Ebrahimi if [ "X$SKIP_NEXT" = "XYES" ]; then 1646*62c56f98SSadaf Ebrahimi SKIP_NEXT="NO" 1647*62c56f98SSadaf Ebrahimi record_outcome "SKIP" 1648*62c56f98SSadaf Ebrahimi SKIPS=$(( $SKIPS + 1 )) 1649*62c56f98SSadaf Ebrahimi return 1650*62c56f98SSadaf Ebrahimi fi 1651*62c56f98SSadaf Ebrahimi 1652*62c56f98SSadaf Ebrahimi analyze_test_commands "$@" 1653*62c56f98SSadaf Ebrahimi 1654*62c56f98SSadaf Ebrahimi # One regular run and two retries 1655*62c56f98SSadaf Ebrahimi TIMES_LEFT=3 1656*62c56f98SSadaf Ebrahimi while [ $TIMES_LEFT -gt 0 ]; do 1657*62c56f98SSadaf Ebrahimi TIMES_LEFT=$(( $TIMES_LEFT - 1 )) 1658*62c56f98SSadaf Ebrahimi 1659*62c56f98SSadaf Ebrahimi do_run_test_once 1660*62c56f98SSadaf Ebrahimi 1661*62c56f98SSadaf Ebrahimi check_test_failure "$@" 1662*62c56f98SSadaf Ebrahimi case $outcome in 1663*62c56f98SSadaf Ebrahimi PASS) break;; 1664*62c56f98SSadaf Ebrahimi RETRY*) printf "$outcome ";; 1665*62c56f98SSadaf Ebrahimi FAIL) return;; 1666*62c56f98SSadaf Ebrahimi esac 1667*62c56f98SSadaf Ebrahimi done 1668*62c56f98SSadaf Ebrahimi 1669*62c56f98SSadaf Ebrahimi # If we get this far, the test case passed. 1670*62c56f98SSadaf Ebrahimi record_outcome "PASS" 1671*62c56f98SSadaf Ebrahimi if [ "$PRESERVE_LOGS" -gt 0 ]; then 1672*62c56f98SSadaf Ebrahimi mv $SRV_OUT o-srv-${TESTS}.log 1673*62c56f98SSadaf Ebrahimi mv $CLI_OUT o-cli-${TESTS}.log 1674*62c56f98SSadaf Ebrahimi if [ -n "$PXY_CMD" ]; then 1675*62c56f98SSadaf Ebrahimi mv $PXY_OUT o-pxy-${TESTS}.log 1676*62c56f98SSadaf Ebrahimi fi 1677*62c56f98SSadaf Ebrahimi fi 1678*62c56f98SSadaf Ebrahimi 1679*62c56f98SSadaf Ebrahimi rm -f $SRV_OUT $CLI_OUT $PXY_OUT 1680*62c56f98SSadaf Ebrahimi} 1681*62c56f98SSadaf Ebrahimi 1682*62c56f98SSadaf Ebrahimirun_test_psa() { 1683*62c56f98SSadaf Ebrahimi requires_config_enabled MBEDTLS_USE_PSA_CRYPTO 1684*62c56f98SSadaf Ebrahimi set_maybe_calc_verify none 1685*62c56f98SSadaf Ebrahimi run_test "PSA-supported ciphersuite: $1" \ 1686*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 force_version=tls12" \ 1687*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 force_ciphersuite=$1" \ 1688*62c56f98SSadaf Ebrahimi 0 \ 1689*62c56f98SSadaf Ebrahimi -c "$maybe_calc_verify" \ 1690*62c56f98SSadaf Ebrahimi -c "calc PSA finished" \ 1691*62c56f98SSadaf Ebrahimi -s "$maybe_calc_verify" \ 1692*62c56f98SSadaf Ebrahimi -s "calc PSA finished" \ 1693*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.2" \ 1694*62c56f98SSadaf Ebrahimi -c "Perform PSA-based ECDH computation."\ 1695*62c56f98SSadaf Ebrahimi -c "Perform PSA-based computation of digest of ServerKeyExchange" \ 1696*62c56f98SSadaf Ebrahimi -S "error" \ 1697*62c56f98SSadaf Ebrahimi -C "error" 1698*62c56f98SSadaf Ebrahimi unset maybe_calc_verify 1699*62c56f98SSadaf Ebrahimi} 1700*62c56f98SSadaf Ebrahimi 1701*62c56f98SSadaf Ebrahimirun_test_psa_force_curve() { 1702*62c56f98SSadaf Ebrahimi requires_config_enabled MBEDTLS_USE_PSA_CRYPTO 1703*62c56f98SSadaf Ebrahimi set_maybe_calc_verify none 1704*62c56f98SSadaf Ebrahimi run_test "PSA - ECDH with $1" \ 1705*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 force_version=tls12 groups=$1" \ 1706*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 groups=$1" \ 1707*62c56f98SSadaf Ebrahimi 0 \ 1708*62c56f98SSadaf Ebrahimi -c "$maybe_calc_verify" \ 1709*62c56f98SSadaf Ebrahimi -c "calc PSA finished" \ 1710*62c56f98SSadaf Ebrahimi -s "$maybe_calc_verify" \ 1711*62c56f98SSadaf Ebrahimi -s "calc PSA finished" \ 1712*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.2" \ 1713*62c56f98SSadaf Ebrahimi -c "Perform PSA-based ECDH computation."\ 1714*62c56f98SSadaf Ebrahimi -c "Perform PSA-based computation of digest of ServerKeyExchange" \ 1715*62c56f98SSadaf Ebrahimi -S "error" \ 1716*62c56f98SSadaf Ebrahimi -C "error" 1717*62c56f98SSadaf Ebrahimi unset maybe_calc_verify 1718*62c56f98SSadaf Ebrahimi} 1719*62c56f98SSadaf Ebrahimi 1720*62c56f98SSadaf Ebrahimi# Test that the server's memory usage after a handshake is reduced when a client specifies 1721*62c56f98SSadaf Ebrahimi# a maximum fragment length. 1722*62c56f98SSadaf Ebrahimi# first argument ($1) is MFL for SSL client 1723*62c56f98SSadaf Ebrahimi# second argument ($2) is memory usage for SSL client with default MFL (16k) 1724*62c56f98SSadaf Ebrahimirun_test_memory_after_hanshake_with_mfl() 1725*62c56f98SSadaf Ebrahimi{ 1726*62c56f98SSadaf Ebrahimi # The test passes if the difference is around 2*(16k-MFL) 1727*62c56f98SSadaf Ebrahimi MEMORY_USAGE_LIMIT="$(( $2 - ( 2 * ( 16384 - $1 )) ))" 1728*62c56f98SSadaf Ebrahimi 1729*62c56f98SSadaf Ebrahimi # Leave some margin for robustness 1730*62c56f98SSadaf Ebrahimi MEMORY_USAGE_LIMIT="$(( ( MEMORY_USAGE_LIMIT * 110 ) / 100 ))" 1731*62c56f98SSadaf Ebrahimi 1732*62c56f98SSadaf Ebrahimi run_test "Handshake memory usage (MFL $1)" \ 1733*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=required force_version=tls12" \ 1734*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 \ 1735*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 1736*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM max_frag_len=$1" \ 1737*62c56f98SSadaf Ebrahimi 0 \ 1738*62c56f98SSadaf Ebrahimi -F "handshake_memory_check $MEMORY_USAGE_LIMIT" 1739*62c56f98SSadaf Ebrahimi} 1740*62c56f98SSadaf Ebrahimi 1741*62c56f98SSadaf Ebrahimi 1742*62c56f98SSadaf Ebrahimi# Test that the server's memory usage after a handshake is reduced when a client specifies 1743*62c56f98SSadaf Ebrahimi# different values of Maximum Fragment Length: default (16k), 4k, 2k, 1k and 512 bytes 1744*62c56f98SSadaf Ebrahimirun_tests_memory_after_hanshake() 1745*62c56f98SSadaf Ebrahimi{ 1746*62c56f98SSadaf Ebrahimi # all tests in this sequence requires the same configuration (see requires_config_enabled()) 1747*62c56f98SSadaf Ebrahimi SKIP_THIS_TESTS="$SKIP_NEXT" 1748*62c56f98SSadaf Ebrahimi 1749*62c56f98SSadaf Ebrahimi # first test with default MFU is to get reference memory usage 1750*62c56f98SSadaf Ebrahimi MEMORY_USAGE_MFL_16K=0 1751*62c56f98SSadaf Ebrahimi run_test "Handshake memory usage initial (MFL 16384 - default)" \ 1752*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=required force_version=tls12" \ 1753*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 \ 1754*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 1755*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM" \ 1756*62c56f98SSadaf Ebrahimi 0 \ 1757*62c56f98SSadaf Ebrahimi -F "handshake_memory_get MEMORY_USAGE_MFL_16K" 1758*62c56f98SSadaf Ebrahimi 1759*62c56f98SSadaf Ebrahimi SKIP_NEXT="$SKIP_THIS_TESTS" 1760*62c56f98SSadaf Ebrahimi run_test_memory_after_hanshake_with_mfl 4096 "$MEMORY_USAGE_MFL_16K" 1761*62c56f98SSadaf Ebrahimi 1762*62c56f98SSadaf Ebrahimi SKIP_NEXT="$SKIP_THIS_TESTS" 1763*62c56f98SSadaf Ebrahimi run_test_memory_after_hanshake_with_mfl 2048 "$MEMORY_USAGE_MFL_16K" 1764*62c56f98SSadaf Ebrahimi 1765*62c56f98SSadaf Ebrahimi SKIP_NEXT="$SKIP_THIS_TESTS" 1766*62c56f98SSadaf Ebrahimi run_test_memory_after_hanshake_with_mfl 1024 "$MEMORY_USAGE_MFL_16K" 1767*62c56f98SSadaf Ebrahimi 1768*62c56f98SSadaf Ebrahimi SKIP_NEXT="$SKIP_THIS_TESTS" 1769*62c56f98SSadaf Ebrahimi run_test_memory_after_hanshake_with_mfl 512 "$MEMORY_USAGE_MFL_16K" 1770*62c56f98SSadaf Ebrahimi} 1771*62c56f98SSadaf Ebrahimi 1772*62c56f98SSadaf Ebrahimicleanup() { 1773*62c56f98SSadaf Ebrahimi rm -f $CLI_OUT $SRV_OUT $PXY_OUT $SESSION 1774*62c56f98SSadaf Ebrahimi rm -f context_srv.txt 1775*62c56f98SSadaf Ebrahimi rm -f context_cli.txt 1776*62c56f98SSadaf Ebrahimi test -n "${SRV_PID:-}" && kill $SRV_PID >/dev/null 2>&1 1777*62c56f98SSadaf Ebrahimi test -n "${PXY_PID:-}" && kill $PXY_PID >/dev/null 2>&1 1778*62c56f98SSadaf Ebrahimi test -n "${CLI_PID:-}" && kill $CLI_PID >/dev/null 2>&1 1779*62c56f98SSadaf Ebrahimi test -n "${DOG_PID:-}" && kill $DOG_PID >/dev/null 2>&1 1780*62c56f98SSadaf Ebrahimi exit 1 1781*62c56f98SSadaf Ebrahimi} 1782*62c56f98SSadaf Ebrahimi 1783*62c56f98SSadaf Ebrahimi# 1784*62c56f98SSadaf Ebrahimi# MAIN 1785*62c56f98SSadaf Ebrahimi# 1786*62c56f98SSadaf Ebrahimi 1787*62c56f98SSadaf Ebrahimiget_options "$@" 1788*62c56f98SSadaf Ebrahimi 1789*62c56f98SSadaf Ebrahimi# Make the outcome file path relative to the original directory, not 1790*62c56f98SSadaf Ebrahimi# to .../tests 1791*62c56f98SSadaf Ebrahimicase "$MBEDTLS_TEST_OUTCOME_FILE" in 1792*62c56f98SSadaf Ebrahimi [!/]*) 1793*62c56f98SSadaf Ebrahimi MBEDTLS_TEST_OUTCOME_FILE="$ORIGINAL_PWD/$MBEDTLS_TEST_OUTCOME_FILE" 1794*62c56f98SSadaf Ebrahimi ;; 1795*62c56f98SSadaf Ebrahimiesac 1796*62c56f98SSadaf Ebrahimi 1797*62c56f98SSadaf Ebrahimipopulate_enabled_hash_algs 1798*62c56f98SSadaf Ebrahimi 1799*62c56f98SSadaf Ebrahimi# Optimize filters: if $FILTER and $EXCLUDE can be expressed as shell 1800*62c56f98SSadaf Ebrahimi# patterns rather than regular expressions, use a case statement instead 1801*62c56f98SSadaf Ebrahimi# of calling grep. To keep the optimizer simple, it is incomplete and only 1802*62c56f98SSadaf Ebrahimi# detects simple cases: plain substring, everything, nothing. 1803*62c56f98SSadaf Ebrahimi# 1804*62c56f98SSadaf Ebrahimi# As an exception, the character '.' is treated as an ordinary character 1805*62c56f98SSadaf Ebrahimi# if it is the only special character in the string. This is because it's 1806*62c56f98SSadaf Ebrahimi# rare to need "any one character", but needing a literal '.' is common 1807*62c56f98SSadaf Ebrahimi# (e.g. '-f "DTLS 1.2"'). 1808*62c56f98SSadaf Ebrahimineed_grep= 1809*62c56f98SSadaf Ebrahimicase "$FILTER" in 1810*62c56f98SSadaf Ebrahimi '^$') simple_filter=;; 1811*62c56f98SSadaf Ebrahimi '.*') simple_filter='*';; 1812*62c56f98SSadaf Ebrahimi *[][$+*?\\^{\|}]*) # Regexp special characters (other than .), we need grep 1813*62c56f98SSadaf Ebrahimi need_grep=1;; 1814*62c56f98SSadaf Ebrahimi *) # No regexp or shell-pattern special character 1815*62c56f98SSadaf Ebrahimi simple_filter="*$FILTER*";; 1816*62c56f98SSadaf Ebrahimiesac 1817*62c56f98SSadaf Ebrahimicase "$EXCLUDE" in 1818*62c56f98SSadaf Ebrahimi '^$') simple_exclude=;; 1819*62c56f98SSadaf Ebrahimi '.*') simple_exclude='*';; 1820*62c56f98SSadaf Ebrahimi *[][$+*?\\^{\|}]*) # Regexp special characters (other than .), we need grep 1821*62c56f98SSadaf Ebrahimi need_grep=1;; 1822*62c56f98SSadaf Ebrahimi *) # No regexp or shell-pattern special character 1823*62c56f98SSadaf Ebrahimi simple_exclude="*$EXCLUDE*";; 1824*62c56f98SSadaf Ebrahimiesac 1825*62c56f98SSadaf Ebrahimiif [ -n "$need_grep" ]; then 1826*62c56f98SSadaf Ebrahimi is_excluded () { 1827*62c56f98SSadaf Ebrahimi ! echo "$1" | grep "$FILTER" | grep -q -v "$EXCLUDE" 1828*62c56f98SSadaf Ebrahimi } 1829*62c56f98SSadaf Ebrahimielse 1830*62c56f98SSadaf Ebrahimi is_excluded () { 1831*62c56f98SSadaf Ebrahimi case "$1" in 1832*62c56f98SSadaf Ebrahimi $simple_exclude) true;; 1833*62c56f98SSadaf Ebrahimi $simple_filter) false;; 1834*62c56f98SSadaf Ebrahimi *) true;; 1835*62c56f98SSadaf Ebrahimi esac 1836*62c56f98SSadaf Ebrahimi } 1837*62c56f98SSadaf Ebrahimifi 1838*62c56f98SSadaf Ebrahimi 1839*62c56f98SSadaf Ebrahimi# sanity checks, avoid an avalanche of errors 1840*62c56f98SSadaf EbrahimiP_SRV_BIN="${P_SRV%%[ ]*}" 1841*62c56f98SSadaf EbrahimiP_CLI_BIN="${P_CLI%%[ ]*}" 1842*62c56f98SSadaf EbrahimiP_PXY_BIN="${P_PXY%%[ ]*}" 1843*62c56f98SSadaf Ebrahimiif [ ! -x "$P_SRV_BIN" ]; then 1844*62c56f98SSadaf Ebrahimi echo "Command '$P_SRV_BIN' is not an executable file" 1845*62c56f98SSadaf Ebrahimi exit 1 1846*62c56f98SSadaf Ebrahimifi 1847*62c56f98SSadaf Ebrahimiif [ ! -x "$P_CLI_BIN" ]; then 1848*62c56f98SSadaf Ebrahimi echo "Command '$P_CLI_BIN' is not an executable file" 1849*62c56f98SSadaf Ebrahimi exit 1 1850*62c56f98SSadaf Ebrahimifi 1851*62c56f98SSadaf Ebrahimiif [ ! -x "$P_PXY_BIN" ]; then 1852*62c56f98SSadaf Ebrahimi echo "Command '$P_PXY_BIN' is not an executable file" 1853*62c56f98SSadaf Ebrahimi exit 1 1854*62c56f98SSadaf Ebrahimifi 1855*62c56f98SSadaf Ebrahimiif [ "$MEMCHECK" -gt 0 ]; then 1856*62c56f98SSadaf Ebrahimi if which valgrind >/dev/null 2>&1; then :; else 1857*62c56f98SSadaf Ebrahimi echo "Memcheck not possible. Valgrind not found" 1858*62c56f98SSadaf Ebrahimi exit 1 1859*62c56f98SSadaf Ebrahimi fi 1860*62c56f98SSadaf Ebrahimifi 1861*62c56f98SSadaf Ebrahimiif which $OPENSSL >/dev/null 2>&1; then :; else 1862*62c56f98SSadaf Ebrahimi echo "Command '$OPENSSL' not found" 1863*62c56f98SSadaf Ebrahimi exit 1 1864*62c56f98SSadaf Ebrahimifi 1865*62c56f98SSadaf Ebrahimi 1866*62c56f98SSadaf Ebrahimi# used by watchdog 1867*62c56f98SSadaf EbrahimiMAIN_PID="$$" 1868*62c56f98SSadaf Ebrahimi 1869*62c56f98SSadaf Ebrahimi# We use somewhat arbitrary delays for tests: 1870*62c56f98SSadaf Ebrahimi# - how long do we wait for the server to start (when lsof not available)? 1871*62c56f98SSadaf Ebrahimi# - how long do we allow for the client to finish? 1872*62c56f98SSadaf Ebrahimi# (not to check performance, just to avoid waiting indefinitely) 1873*62c56f98SSadaf Ebrahimi# Things are slower with valgrind, so give extra time here. 1874*62c56f98SSadaf Ebrahimi# 1875*62c56f98SSadaf Ebrahimi# Note: without lsof, there is a trade-off between the running time of this 1876*62c56f98SSadaf Ebrahimi# script and the risk of spurious errors because we didn't wait long enough. 1877*62c56f98SSadaf Ebrahimi# The watchdog delay on the other hand doesn't affect normal running time of 1878*62c56f98SSadaf Ebrahimi# the script, only the case where a client or server gets stuck. 1879*62c56f98SSadaf Ebrahimiif [ "$MEMCHECK" -gt 0 ]; then 1880*62c56f98SSadaf Ebrahimi START_DELAY=6 1881*62c56f98SSadaf Ebrahimi DOG_DELAY=60 1882*62c56f98SSadaf Ebrahimielse 1883*62c56f98SSadaf Ebrahimi START_DELAY=2 1884*62c56f98SSadaf Ebrahimi DOG_DELAY=20 1885*62c56f98SSadaf Ebrahimifi 1886*62c56f98SSadaf Ebrahimi 1887*62c56f98SSadaf Ebrahimi# some particular tests need more time: 1888*62c56f98SSadaf Ebrahimi# - for the client, we multiply the usual watchdog limit by a factor 1889*62c56f98SSadaf Ebrahimi# - for the server, we sleep for a number of seconds after the client exits 1890*62c56f98SSadaf Ebrahimi# see client_need_more_time() and server_needs_more_time() 1891*62c56f98SSadaf EbrahimiCLI_DELAY_FACTOR=1 1892*62c56f98SSadaf EbrahimiSRV_DELAY_SECONDS=0 1893*62c56f98SSadaf Ebrahimi 1894*62c56f98SSadaf Ebrahimi# fix commands to use this port, force IPv4 while at it 1895*62c56f98SSadaf Ebrahimi# +SRV_PORT will be replaced by either $SRV_PORT or $PXY_PORT later 1896*62c56f98SSadaf Ebrahimi# Note: Using 'localhost' rather than 127.0.0.1 here is unwise, as on many 1897*62c56f98SSadaf Ebrahimi# machines that will resolve to ::1, and we don't want ipv6 here. 1898*62c56f98SSadaf EbrahimiP_SRV="$P_SRV server_addr=127.0.0.1 server_port=$SRV_PORT" 1899*62c56f98SSadaf EbrahimiP_CLI="$P_CLI server_addr=127.0.0.1 server_port=+SRV_PORT" 1900*62c56f98SSadaf EbrahimiP_PXY="$P_PXY server_addr=127.0.0.1 server_port=$SRV_PORT listen_addr=127.0.0.1 listen_port=$PXY_PORT ${SEED:+"seed=$SEED"}" 1901*62c56f98SSadaf EbrahimiO_SRV="$O_SRV -accept $SRV_PORT" 1902*62c56f98SSadaf EbrahimiO_CLI="$O_CLI -connect 127.0.0.1:+SRV_PORT" 1903*62c56f98SSadaf EbrahimiG_SRV="$G_SRV -p $SRV_PORT" 1904*62c56f98SSadaf EbrahimiG_CLI="$G_CLI -p +SRV_PORT" 1905*62c56f98SSadaf Ebrahimi 1906*62c56f98SSadaf Ebrahimiif [ -n "${OPENSSL_LEGACY:-}" ]; then 1907*62c56f98SSadaf Ebrahimi O_LEGACY_SRV="$O_LEGACY_SRV -accept $SRV_PORT -dhparam data_files/dhparams.pem" 1908*62c56f98SSadaf Ebrahimi O_LEGACY_CLI="$O_LEGACY_CLI -connect 127.0.0.1:+SRV_PORT" 1909*62c56f98SSadaf Ebrahimifi 1910*62c56f98SSadaf Ebrahimi 1911*62c56f98SSadaf Ebrahimi# Newer versions of OpenSSL have a syntax to enable all "ciphers", even 1912*62c56f98SSadaf Ebrahimi# low-security ones. This covers not just cipher suites but also protocol 1913*62c56f98SSadaf Ebrahimi# versions. It is necessary, for example, to use (D)TLS 1.0/1.1 on 1914*62c56f98SSadaf Ebrahimi# OpenSSL 1.1.1f from Ubuntu 20.04. The syntax was only introduced in 1915*62c56f98SSadaf Ebrahimi# OpenSSL 1.1.0 (21e0c1d23afff48601eb93135defddae51f7e2e3) and I can't find 1916*62c56f98SSadaf Ebrahimi# a way to discover it from -help, so check the openssl version. 1917*62c56f98SSadaf Ebrahimicase $($OPENSSL version) in 1918*62c56f98SSadaf Ebrahimi "OpenSSL 0"*|"OpenSSL 1.0"*) :;; 1919*62c56f98SSadaf Ebrahimi *) 1920*62c56f98SSadaf Ebrahimi O_CLI="$O_CLI -cipher ALL@SECLEVEL=0" 1921*62c56f98SSadaf Ebrahimi O_SRV="$O_SRV -cipher ALL@SECLEVEL=0" 1922*62c56f98SSadaf Ebrahimi ;; 1923*62c56f98SSadaf Ebrahimiesac 1924*62c56f98SSadaf Ebrahimi 1925*62c56f98SSadaf Ebrahimiif [ -n "${OPENSSL_NEXT:-}" ]; then 1926*62c56f98SSadaf Ebrahimi O_NEXT_SRV="$O_NEXT_SRV -accept $SRV_PORT" 1927*62c56f98SSadaf Ebrahimi O_NEXT_SRV_NO_CERT="$O_NEXT_SRV_NO_CERT -accept $SRV_PORT" 1928*62c56f98SSadaf Ebrahimi O_NEXT_SRV_EARLY_DATA="$O_NEXT_SRV_EARLY_DATA -accept $SRV_PORT" 1929*62c56f98SSadaf Ebrahimi O_NEXT_CLI="$O_NEXT_CLI -connect 127.0.0.1:+SRV_PORT" 1930*62c56f98SSadaf Ebrahimi O_NEXT_CLI_NO_CERT="$O_NEXT_CLI_NO_CERT -connect 127.0.0.1:+SRV_PORT" 1931*62c56f98SSadaf Ebrahimifi 1932*62c56f98SSadaf Ebrahimi 1933*62c56f98SSadaf Ebrahimiif [ -n "${GNUTLS_NEXT_SERV:-}" ]; then 1934*62c56f98SSadaf Ebrahimi G_NEXT_SRV="$G_NEXT_SRV -p $SRV_PORT" 1935*62c56f98SSadaf Ebrahimi G_NEXT_SRV_NO_CERT="$G_NEXT_SRV_NO_CERT -p $SRV_PORT" 1936*62c56f98SSadaf Ebrahimifi 1937*62c56f98SSadaf Ebrahimi 1938*62c56f98SSadaf Ebrahimiif [ -n "${GNUTLS_NEXT_CLI:-}" ]; then 1939*62c56f98SSadaf Ebrahimi G_NEXT_CLI="$G_NEXT_CLI -p +SRV_PORT" 1940*62c56f98SSadaf Ebrahimi G_NEXT_CLI_NO_CERT="$G_NEXT_CLI_NO_CERT -p +SRV_PORT localhost" 1941*62c56f98SSadaf Ebrahimifi 1942*62c56f98SSadaf Ebrahimi 1943*62c56f98SSadaf Ebrahimi# Allow SHA-1, because many of our test certificates use it 1944*62c56f98SSadaf EbrahimiP_SRV="$P_SRV allow_sha1=1" 1945*62c56f98SSadaf EbrahimiP_CLI="$P_CLI allow_sha1=1" 1946*62c56f98SSadaf Ebrahimi 1947*62c56f98SSadaf Ebrahimi# Also pick a unique name for intermediate files 1948*62c56f98SSadaf EbrahimiSRV_OUT="srv_out.$$" 1949*62c56f98SSadaf EbrahimiCLI_OUT="cli_out.$$" 1950*62c56f98SSadaf EbrahimiPXY_OUT="pxy_out.$$" 1951*62c56f98SSadaf EbrahimiSESSION="session.$$" 1952*62c56f98SSadaf Ebrahimi 1953*62c56f98SSadaf EbrahimiSKIP_NEXT="NO" 1954*62c56f98SSadaf Ebrahimi 1955*62c56f98SSadaf Ebrahimitrap cleanup INT TERM HUP 1956*62c56f98SSadaf Ebrahimi 1957*62c56f98SSadaf Ebrahimi# Basic test 1958*62c56f98SSadaf Ebrahimi 1959*62c56f98SSadaf Ebrahimi# Checks that: 1960*62c56f98SSadaf Ebrahimi# - things work with all ciphersuites active (used with config-full in all.sh) 1961*62c56f98SSadaf Ebrahimi# - the expected parameters are selected 1962*62c56f98SSadaf Ebrahimirequires_ciphersuite_enabled TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256 1963*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_512 # "signature_algorithm ext: 6" 1964*62c56f98SSadaf Ebrahimirequires_any_configs_enabled "MBEDTLS_ECP_DP_CURVE25519_ENABLED \ 1965*62c56f98SSadaf Ebrahimi PSA_WANT_ECC_MONTGOMERY_255" 1966*62c56f98SSadaf Ebrahimirun_test "Default, TLS 1.2" \ 1967*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 1968*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 1969*62c56f98SSadaf Ebrahimi 0 \ 1970*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.2" \ 1971*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256" \ 1972*62c56f98SSadaf Ebrahimi -s "client hello v3, signature_algorithm ext: 6" \ 1973*62c56f98SSadaf Ebrahimi -s "ECDHE curve: x25519" \ 1974*62c56f98SSadaf Ebrahimi -S "error" \ 1975*62c56f98SSadaf Ebrahimi -C "error" 1976*62c56f98SSadaf Ebrahimi 1977*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 1978*62c56f98SSadaf Ebrahimirequires_ciphersuite_enabled TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256 1979*62c56f98SSadaf Ebrahimirun_test "Default, DTLS" \ 1980*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1" \ 1981*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1" \ 1982*62c56f98SSadaf Ebrahimi 0 \ 1983*62c56f98SSadaf Ebrahimi -s "Protocol is DTLSv1.2" \ 1984*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256" 1985*62c56f98SSadaf Ebrahimi 1986*62c56f98SSadaf Ebrahimi# GnuTLS can be setup to send a ClientHello containing a supported versions 1987*62c56f98SSadaf Ebrahimi# extension proposing TLS 1.2 (preferred) and then TLS 1.3. In that case, 1988*62c56f98SSadaf Ebrahimi# a TLS 1.3 and TLS 1.2 capable server is supposed to negotiate TLS 1.2 and 1989*62c56f98SSadaf Ebrahimi# to indicate in the ServerHello that it downgrades from TLS 1.3. The GnuTLS 1990*62c56f98SSadaf Ebrahimi# client then detects the downgrade indication and aborts the handshake even 1991*62c56f98SSadaf Ebrahimi# if TLS 1.2 was its preferred version. Keeping the test even if the 1992*62c56f98SSadaf Ebrahimi# handshake fails eventually as it exercices parts of the Mbed TLS 1993*62c56f98SSadaf Ebrahimi# implementation that are otherwise not exercised. 1994*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 1995*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 1996*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 1997*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 1998*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 1999*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 2000*62c56f98SSadaf Ebrahimirun_test "Server selecting TLS 1.2 over TLS 1.3" \ 2001*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5.crt key_file=data_files/server5.key" \ 2002*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.3" \ 2003*62c56f98SSadaf Ebrahimi 1 \ 2004*62c56f98SSadaf Ebrahimi -c "Detected downgrade to TLS 1.2 from TLS 1.3" 2005*62c56f98SSadaf Ebrahimi 2006*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 2007*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 2008*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 2009*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2010*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_PROTO_TLS1_3 2011*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 2012*62c56f98SSadaf Ebrahimirun_test "Server selecting TLS 1.2" \ 2013*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5.crt key_file=data_files/server5.key" \ 2014*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.3" \ 2015*62c56f98SSadaf Ebrahimi 0 \ 2016*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.2" \ 2017*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 2018*62c56f98SSadaf Ebrahimi 2019*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 2020*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 2021*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 2022*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 2023*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 2024*62c56f98SSadaf Ebrahimirun_test "Server selecting TLS 1.3, over TLS 1.2 if supported" \ 2025*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5.crt key_file=data_files/server5.key" \ 2026*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:%DISABLE_TLS13_COMPAT_MODE" \ 2027*62c56f98SSadaf Ebrahimi 0 \ 2028*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 2029*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 2030*62c56f98SSadaf Ebrahimi 2031*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 2032*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 2033*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 2034*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 2035*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 2036*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 2037*62c56f98SSadaf Ebrahimirun_test "Server selecting TLS 1.3, over TLS 1.2 if supported - compat mode enabled" \ 2038*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5.crt key_file=data_files/server5.key" \ 2039*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2" \ 2040*62c56f98SSadaf Ebrahimi 0 \ 2041*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 2042*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 2043*62c56f98SSadaf Ebrahimi 2044*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 2045*62c56f98SSadaf Ebrahimirun_test "TLS client auth: required" \ 2046*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=required" \ 2047*62c56f98SSadaf Ebrahimi "$P_CLI" \ 2048*62c56f98SSadaf Ebrahimi 0 \ 2049*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" 2050*62c56f98SSadaf Ebrahimi 2051*62c56f98SSadaf Ebrahimirun_test "key size: TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2052*62c56f98SSadaf Ebrahimi "$P_SRV" \ 2053*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2054*62c56f98SSadaf Ebrahimi 0 \ 2055*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2056*62c56f98SSadaf Ebrahimi -c "Key size is 256" 2057*62c56f98SSadaf Ebrahimi 2058*62c56f98SSadaf Ebrahimirun_test "key size: TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 2059*62c56f98SSadaf Ebrahimi "$P_SRV" \ 2060*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 2061*62c56f98SSadaf Ebrahimi 0 \ 2062*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 2063*62c56f98SSadaf Ebrahimi -c "Key size is 128" 2064*62c56f98SSadaf Ebrahimi 2065*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2066*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2067*62c56f98SSadaf Ebrahimirun_test "TLS: password protected client key" \ 2068*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 auth_mode=required" \ 2069*62c56f98SSadaf Ebrahimi "$P_CLI crt_file=data_files/server5.crt key_file=data_files/server5.key.enc key_pwd=PolarSSLTest" \ 2070*62c56f98SSadaf Ebrahimi 0 2071*62c56f98SSadaf Ebrahimi 2072*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2073*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2074*62c56f98SSadaf Ebrahimirun_test "TLS: password protected server key" \ 2075*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5.crt key_file=data_files/server5.key.enc key_pwd=PolarSSLTest" \ 2076*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 2077*62c56f98SSadaf Ebrahimi 0 2078*62c56f98SSadaf Ebrahimi 2079*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2080*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2081*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2082*62c56f98SSadaf Ebrahimirun_test "TLS: password protected server key, two certificates" \ 2083*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12\ 2084*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key.enc key_pwd=PolarSSLTest crt_file=data_files/server5.crt \ 2085*62c56f98SSadaf Ebrahimi key_file2=data_files/server2.key.enc key_pwd2=PolarSSLTest crt_file2=data_files/server2.crt" \ 2086*62c56f98SSadaf Ebrahimi "$P_CLI" \ 2087*62c56f98SSadaf Ebrahimi 0 2088*62c56f98SSadaf Ebrahimi 2089*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 2090*62c56f98SSadaf Ebrahimirun_test "CA callback on client" \ 2091*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 2092*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 ca_callback=1 debug_level=3 " \ 2093*62c56f98SSadaf Ebrahimi 0 \ 2094*62c56f98SSadaf Ebrahimi -c "use CA callback for X.509 CRT verification" \ 2095*62c56f98SSadaf Ebrahimi -S "error" \ 2096*62c56f98SSadaf Ebrahimi -C "error" 2097*62c56f98SSadaf Ebrahimi 2098*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 2099*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2100*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2101*62c56f98SSadaf Ebrahimirun_test "CA callback on server" \ 2102*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 auth_mode=required" \ 2103*62c56f98SSadaf Ebrahimi "$P_CLI ca_callback=1 debug_level=3 crt_file=data_files/server5.crt \ 2104*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 2105*62c56f98SSadaf Ebrahimi 0 \ 2106*62c56f98SSadaf Ebrahimi -c "use CA callback for X.509 CRT verification" \ 2107*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 2108*62c56f98SSadaf Ebrahimi -S "error" \ 2109*62c56f98SSadaf Ebrahimi -C "error" 2110*62c56f98SSadaf Ebrahimi 2111*62c56f98SSadaf Ebrahimi# Test using an EC opaque private key for client authentication 2112*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2113*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2114*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 2115*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2116*62c56f98SSadaf Ebrahimirun_test "Opaque key for client authentication: ECDHE-ECDSA" \ 2117*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 auth_mode=required crt_file=data_files/server5.crt \ 2118*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 2119*62c56f98SSadaf Ebrahimi "$P_CLI key_opaque=1 crt_file=data_files/server5.crt \ 2120*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key key_opaque_algs=ecdsa-sign,none" \ 2121*62c56f98SSadaf Ebrahimi 0 \ 2122*62c56f98SSadaf Ebrahimi -c "key type: Opaque" \ 2123*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-ECDSA" \ 2124*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 2125*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-ECDSA" \ 2126*62c56f98SSadaf Ebrahimi -S "error" \ 2127*62c56f98SSadaf Ebrahimi -C "error" 2128*62c56f98SSadaf Ebrahimi 2129*62c56f98SSadaf Ebrahimi# Test using a RSA opaque private key for client authentication 2130*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2131*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2132*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2133*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED 2134*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2135*62c56f98SSadaf Ebrahimirun_test "Opaque key for client authentication: ECDHE-RSA" \ 2136*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 auth_mode=required crt_file=data_files/server2-sha256.crt \ 2137*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key" \ 2138*62c56f98SSadaf Ebrahimi "$P_CLI key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2139*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none" \ 2140*62c56f98SSadaf Ebrahimi 0 \ 2141*62c56f98SSadaf Ebrahimi -c "key type: Opaque" \ 2142*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-RSA" \ 2143*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 2144*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-RSA" \ 2145*62c56f98SSadaf Ebrahimi -S "error" \ 2146*62c56f98SSadaf Ebrahimi -C "error" 2147*62c56f98SSadaf Ebrahimi 2148*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2149*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2150*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2151*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2152*62c56f98SSadaf Ebrahimirun_test "Opaque key for client authentication: DHE-RSA" \ 2153*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 auth_mode=required crt_file=data_files/server2-sha256.crt \ 2154*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key" \ 2155*62c56f98SSadaf Ebrahimi "$P_CLI key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2156*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 2157*62c56f98SSadaf Ebrahimi key_opaque_algs=rsa-sign-pkcs1,none" \ 2158*62c56f98SSadaf Ebrahimi 0 \ 2159*62c56f98SSadaf Ebrahimi -c "key type: Opaque" \ 2160*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-DHE-RSA" \ 2161*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 2162*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-DHE-RSA" \ 2163*62c56f98SSadaf Ebrahimi -S "error" \ 2164*62c56f98SSadaf Ebrahimi -C "error" 2165*62c56f98SSadaf Ebrahimi 2166*62c56f98SSadaf Ebrahimi# Test using an EC opaque private key for server authentication 2167*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2168*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2169*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 2170*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2171*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: ECDHE-ECDSA" \ 2172*62c56f98SSadaf Ebrahimi "$P_SRV key_opaque=1 crt_file=data_files/server5.crt \ 2173*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key key_opaque_algs=ecdsa-sign,none" \ 2174*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 2175*62c56f98SSadaf Ebrahimi 0 \ 2176*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2177*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-ECDSA" \ 2178*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2179*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-ECDSA" \ 2180*62c56f98SSadaf Ebrahimi -S "error" \ 2181*62c56f98SSadaf Ebrahimi -C "error" 2182*62c56f98SSadaf Ebrahimi 2183*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2184*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2185*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2186*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: ECDH-" \ 2187*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=required key_opaque=1\ 2188*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.ku-ka.crt\ 2189*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key key_opaque_algs=ecdh,none" \ 2190*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 2191*62c56f98SSadaf Ebrahimi 0 \ 2192*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2193*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDH-" \ 2194*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2195*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDH-" \ 2196*62c56f98SSadaf Ebrahimi -S "error" \ 2197*62c56f98SSadaf Ebrahimi -C "error" 2198*62c56f98SSadaf Ebrahimi 2199*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2200*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2201*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_ASYNC_PRIVATE 2202*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2203*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: invalid key: decrypt with ECC key, no async" \ 2204*62c56f98SSadaf Ebrahimi "$P_SRV key_opaque=1 crt_file=data_files/server5.crt \ 2205*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key key_opaque_algs=rsa-decrypt,none \ 2206*62c56f98SSadaf Ebrahimi debug_level=1" \ 2207*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 2208*62c56f98SSadaf Ebrahimi 1 \ 2209*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2210*62c56f98SSadaf Ebrahimi -s "error" \ 2211*62c56f98SSadaf Ebrahimi -c "error" \ 2212*62c56f98SSadaf Ebrahimi -c "Public key type mismatch" 2213*62c56f98SSadaf Ebrahimi 2214*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2215*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2216*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECDSA_C 2217*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2218*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_ASYNC_PRIVATE 2219*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2220*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: invalid key: ecdh with RSA key, no async" \ 2221*62c56f98SSadaf Ebrahimi "$P_SRV key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2222*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=ecdh,none \ 2223*62c56f98SSadaf Ebrahimi debug_level=1" \ 2224*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 2225*62c56f98SSadaf Ebrahimi 1 \ 2226*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2227*62c56f98SSadaf Ebrahimi -s "error" \ 2228*62c56f98SSadaf Ebrahimi -c "error" \ 2229*62c56f98SSadaf Ebrahimi -c "Public key type mismatch" 2230*62c56f98SSadaf Ebrahimi 2231*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2232*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2233*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 2234*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2235*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: invalid alg: decrypt with ECC key, async" \ 2236*62c56f98SSadaf Ebrahimi "$P_SRV key_opaque=1 crt_file=data_files/server5.crt \ 2237*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key key_opaque_algs=rsa-decrypt,none \ 2238*62c56f98SSadaf Ebrahimi debug_level=1" \ 2239*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 2240*62c56f98SSadaf Ebrahimi 1 \ 2241*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2242*62c56f98SSadaf Ebrahimi -s "got ciphersuites in common, but none of them usable" \ 2243*62c56f98SSadaf Ebrahimi -s "error" \ 2244*62c56f98SSadaf Ebrahimi -c "error" 2245*62c56f98SSadaf Ebrahimi 2246*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2247*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2248*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2249*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 2250*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2251*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: invalid alg: ecdh with RSA key, async" \ 2252*62c56f98SSadaf Ebrahimi "$P_SRV key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2253*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=ecdh,none \ 2254*62c56f98SSadaf Ebrahimi debug_level=1" \ 2255*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 2256*62c56f98SSadaf Ebrahimi 1 \ 2257*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2258*62c56f98SSadaf Ebrahimi -s "got ciphersuites in common, but none of them usable" \ 2259*62c56f98SSadaf Ebrahimi -s "error" \ 2260*62c56f98SSadaf Ebrahimi -c "error" 2261*62c56f98SSadaf Ebrahimi 2262*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2263*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2264*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2265*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_CCM_C 2266*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: invalid alg: ECDHE-ECDSA with ecdh" \ 2267*62c56f98SSadaf Ebrahimi "$P_SRV key_opaque=1 crt_file=data_files/server5.crt \ 2268*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key key_opaque_algs=ecdh,none \ 2269*62c56f98SSadaf Ebrahimi debug_level=1" \ 2270*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-256-CCM" \ 2271*62c56f98SSadaf Ebrahimi 1 \ 2272*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2273*62c56f98SSadaf Ebrahimi -s "got ciphersuites in common, but none of them usable" \ 2274*62c56f98SSadaf Ebrahimi -s "error" \ 2275*62c56f98SSadaf Ebrahimi -c "error" 2276*62c56f98SSadaf Ebrahimi 2277*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2278*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2279*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 2280*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2281*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 2282*62c56f98SSadaf Ebrahimirun_test "Opaque keys for server authentication: EC keys with different algs, force ECDHE-ECDSA" \ 2283*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 key_opaque=1 crt_file=data_files/server7.crt \ 2284*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key key_opaque_algs=ecdh,none \ 2285*62c56f98SSadaf Ebrahimi crt_file2=data_files/server5.crt key_file2=data_files/server5.key \ 2286*62c56f98SSadaf Ebrahimi key_opaque_algs2=ecdsa-sign,none" \ 2287*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 2288*62c56f98SSadaf Ebrahimi 0 \ 2289*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2290*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-ECDSA" \ 2291*62c56f98SSadaf Ebrahimi -c "CN=Polarssl Test EC CA" \ 2292*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2293*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-ECDSA" \ 2294*62c56f98SSadaf Ebrahimi -S "error" \ 2295*62c56f98SSadaf Ebrahimi -C "error" 2296*62c56f98SSadaf Ebrahimi 2297*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2298*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2299*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_384 2300*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 2301*62c56f98SSadaf Ebrahimirun_test "Opaque keys for server authentication: EC keys with different algs, force ECDH-ECDSA" \ 2302*62c56f98SSadaf Ebrahimi "$P_SRV key_opaque=1 crt_file=data_files/server7.crt \ 2303*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key key_opaque_algs=ecdsa-sign,none \ 2304*62c56f98SSadaf Ebrahimi crt_file2=data_files/server5.crt key_file2=data_files/server5.key \ 2305*62c56f98SSadaf Ebrahimi key_opaque_algs2=ecdh,none debug_level=3" \ 2306*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 force_ciphersuite=TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384" \ 2307*62c56f98SSadaf Ebrahimi 0 \ 2308*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2309*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDH-ECDSA" \ 2310*62c56f98SSadaf Ebrahimi -c "CN=Polarssl Test EC CA" \ 2311*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2312*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDH-ECDSA" \ 2313*62c56f98SSadaf Ebrahimi -S "error" \ 2314*62c56f98SSadaf Ebrahimi -C "error" 2315*62c56f98SSadaf Ebrahimi 2316*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2317*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2318*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_384 2319*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_CCM_C 2320*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 2321*62c56f98SSadaf Ebrahimirun_test "Opaque keys for server authentication: EC + RSA, force ECDHE-ECDSA" \ 2322*62c56f98SSadaf Ebrahimi "$P_SRV key_opaque=1 crt_file=data_files/server5.crt \ 2323*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key key_opaque_algs=ecdsa-sign,none \ 2324*62c56f98SSadaf Ebrahimi crt_file2=data_files/server2-sha256.crt \ 2325*62c56f98SSadaf Ebrahimi key_file2=data_files/server2.key key_opaque_algs2=rsa-sign-pkcs1,none" \ 2326*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-256-CCM" \ 2327*62c56f98SSadaf Ebrahimi 0 \ 2328*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2329*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-ECDSA" \ 2330*62c56f98SSadaf Ebrahimi -c "CN=Polarssl Test EC CA" \ 2331*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2332*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-ECDSA" \ 2333*62c56f98SSadaf Ebrahimi -S "error" \ 2334*62c56f98SSadaf Ebrahimi -C "error" 2335*62c56f98SSadaf Ebrahimi 2336*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 2337*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2338*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2339*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 2340*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 2341*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 opaque key: no suitable algorithm found" \ 2342*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required key_opaque=1 key_opaque_algs=rsa-decrypt,none" \ 2343*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 2344*62c56f98SSadaf Ebrahimi 1 \ 2345*62c56f98SSadaf Ebrahimi -c "key type: Opaque" \ 2346*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2347*62c56f98SSadaf Ebrahimi -c "error" \ 2348*62c56f98SSadaf Ebrahimi -s "no suitable signature algorithm" 2349*62c56f98SSadaf Ebrahimi 2350*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 2351*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2352*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2353*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 2354*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 2355*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 opaque key: suitable algorithm found" \ 2356*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 2357*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 2358*62c56f98SSadaf Ebrahimi 0 \ 2359*62c56f98SSadaf Ebrahimi -c "key type: Opaque" \ 2360*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2361*62c56f98SSadaf Ebrahimi -C "error" \ 2362*62c56f98SSadaf Ebrahimi -S "error" 2363*62c56f98SSadaf Ebrahimi 2364*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 2365*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2366*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2367*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 2368*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 2369*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 opaque key: first client sig alg not suitable" \ 2370*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required key_opaque=1 key_opaque_algs=rsa-sign-pss-sha512,none" \ 2371*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 sig_algs=rsa_pss_rsae_sha256,rsa_pss_rsae_sha512" \ 2372*62c56f98SSadaf Ebrahimi 0 \ 2373*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2374*62c56f98SSadaf Ebrahimi -s "CertificateVerify signature failed with rsa_pss_rsae_sha256" \ 2375*62c56f98SSadaf Ebrahimi -s "CertificateVerify signature with rsa_pss_rsae_sha512" \ 2376*62c56f98SSadaf Ebrahimi -C "error" \ 2377*62c56f98SSadaf Ebrahimi -S "error" \ 2378*62c56f98SSadaf Ebrahimi 2379*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 2380*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2381*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2382*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 2383*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 2384*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 opaque key: 2 keys on server, suitable algorithm found" \ 2385*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required key_opaque=1 key_opaque_algs2=ecdsa-sign,none key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 2386*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 2387*62c56f98SSadaf Ebrahimi 0 \ 2388*62c56f98SSadaf Ebrahimi -c "key type: Opaque" \ 2389*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2390*62c56f98SSadaf Ebrahimi -C "error" \ 2391*62c56f98SSadaf Ebrahimi -S "error" \ 2392*62c56f98SSadaf Ebrahimi 2393*62c56f98SSadaf Ebrahimi# Test using a RSA opaque private key for server authentication 2394*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2395*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2396*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2397*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED 2398*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2399*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: ECDHE-RSA" \ 2400*62c56f98SSadaf Ebrahimi "$P_SRV key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2401*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none" \ 2402*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 2403*62c56f98SSadaf Ebrahimi 0 \ 2404*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2405*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-RSA" \ 2406*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2407*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-RSA" \ 2408*62c56f98SSadaf Ebrahimi -S "error" \ 2409*62c56f98SSadaf Ebrahimi -C "error" 2410*62c56f98SSadaf Ebrahimi 2411*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2412*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2413*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2414*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2415*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: DHE-RSA" \ 2416*62c56f98SSadaf Ebrahimi "$P_SRV key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2417*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none" \ 2418*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA" \ 2419*62c56f98SSadaf Ebrahimi 0 \ 2420*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2421*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-DHE-RSA" \ 2422*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2423*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-DHE-RSA" \ 2424*62c56f98SSadaf Ebrahimi -S "error" \ 2425*62c56f98SSadaf Ebrahimi -C "error" 2426*62c56f98SSadaf Ebrahimi 2427*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2428*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2429*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2430*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2431*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: RSA-PSK" \ 2432*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 key_opaque=1 key_opaque_algs=rsa-decrypt,none \ 2433*62c56f98SSadaf Ebrahimi psk=abc123 psk_identity=foo" \ 2434*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA256 \ 2435*62c56f98SSadaf Ebrahimi psk=abc123 psk_identity=foo" \ 2436*62c56f98SSadaf Ebrahimi 0 \ 2437*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2438*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-RSA-PSK-" \ 2439*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2440*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-RSA-PSK-" \ 2441*62c56f98SSadaf Ebrahimi -S "error" \ 2442*62c56f98SSadaf Ebrahimi -C "error" 2443*62c56f98SSadaf Ebrahimi 2444*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2445*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2446*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2447*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2448*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: RSA-" \ 2449*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 key_opaque=1 key_opaque_algs=rsa-decrypt,none " \ 2450*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA256" \ 2451*62c56f98SSadaf Ebrahimi 0 \ 2452*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2453*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-RSA-" \ 2454*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2455*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-RSA-" \ 2456*62c56f98SSadaf Ebrahimi -S "error" \ 2457*62c56f98SSadaf Ebrahimi -C "error" 2458*62c56f98SSadaf Ebrahimi 2459*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2460*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2461*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2462*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2463*62c56f98SSadaf Ebrahimirun_test "Opaque key for server authentication: DHE-RSA, PSS instead of PKCS1" \ 2464*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=required key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2465*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=rsa-sign-pss,none debug_level=1" \ 2466*62c56f98SSadaf Ebrahimi "$P_CLI crt_file=data_files/server2-sha256.crt \ 2467*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA" \ 2468*62c56f98SSadaf Ebrahimi 1 \ 2469*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2470*62c56f98SSadaf Ebrahimi -s "got ciphersuites in common, but none of them usable" \ 2471*62c56f98SSadaf Ebrahimi -s "error" \ 2472*62c56f98SSadaf Ebrahimi -c "error" 2473*62c56f98SSadaf Ebrahimi 2474*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2475*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2476*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2477*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2478*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 2479*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED 2480*62c56f98SSadaf Ebrahimirun_test "Opaque keys for server authentication: RSA keys with different algs" \ 2481*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 auth_mode=required key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2482*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=rsa-sign-pss,none \ 2483*62c56f98SSadaf Ebrahimi crt_file2=data_files/server4.crt \ 2484*62c56f98SSadaf Ebrahimi key_file2=data_files/server4.key key_opaque_algs2=rsa-sign-pkcs1,none" \ 2485*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 2486*62c56f98SSadaf Ebrahimi 0 \ 2487*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2488*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-RSA" \ 2489*62c56f98SSadaf Ebrahimi -c "CN=Polarssl Test EC CA" \ 2490*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2491*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-RSA" \ 2492*62c56f98SSadaf Ebrahimi -S "error" \ 2493*62c56f98SSadaf Ebrahimi -C "error" 2494*62c56f98SSadaf Ebrahimi 2495*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2496*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2497*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2498*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_384 2499*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_GCM_C 2500*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 2501*62c56f98SSadaf Ebrahimirun_test "Opaque keys for server authentication: EC + RSA, force DHE-RSA" \ 2502*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=required key_opaque=1 crt_file=data_files/server5.crt \ 2503*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key key_opaque_algs=ecdsa-sign,none \ 2504*62c56f98SSadaf Ebrahimi crt_file2=data_files/server4.crt \ 2505*62c56f98SSadaf Ebrahimi key_file2=data_files/server4.key key_opaque_algs2=rsa-sign-pkcs1,none" \ 2506*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA" \ 2507*62c56f98SSadaf Ebrahimi 0 \ 2508*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2509*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-DHE-RSA" \ 2510*62c56f98SSadaf Ebrahimi -c "CN=Polarssl Test EC CA" \ 2511*62c56f98SSadaf Ebrahimi -s "key types: Opaque, Opaque" \ 2512*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-DHE-RSA" \ 2513*62c56f98SSadaf Ebrahimi -S "error" \ 2514*62c56f98SSadaf Ebrahimi -C "error" 2515*62c56f98SSadaf Ebrahimi 2516*62c56f98SSadaf Ebrahimi# Test using an EC opaque private key for client/server authentication 2517*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2518*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2519*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 2520*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2521*62c56f98SSadaf Ebrahimirun_test "Opaque key for client/server authentication: ECDHE-ECDSA" \ 2522*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 auth_mode=required key_opaque=1 crt_file=data_files/server5.crt \ 2523*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key key_opaque_algs=ecdsa-sign,none" \ 2524*62c56f98SSadaf Ebrahimi "$P_CLI key_opaque=1 crt_file=data_files/server5.crt \ 2525*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key key_opaque_algs=ecdsa-sign,none" \ 2526*62c56f98SSadaf Ebrahimi 0 \ 2527*62c56f98SSadaf Ebrahimi -c "key type: Opaque" \ 2528*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2529*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-ECDSA" \ 2530*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2531*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 2532*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-ECDSA" \ 2533*62c56f98SSadaf Ebrahimi -S "error" \ 2534*62c56f98SSadaf Ebrahimi -C "error" 2535*62c56f98SSadaf Ebrahimi 2536*62c56f98SSadaf Ebrahimi# Test using a RSA opaque private key for client/server authentication 2537*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2538*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2539*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2540*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2541*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED 2542*62c56f98SSadaf Ebrahimirun_test "Opaque key for client/server authentication: ECDHE-RSA" \ 2543*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=required key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2544*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none" \ 2545*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2546*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none" \ 2547*62c56f98SSadaf Ebrahimi 0 \ 2548*62c56f98SSadaf Ebrahimi -c "key type: Opaque" \ 2549*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2550*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-RSA" \ 2551*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2552*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 2553*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-ECDHE-RSA" \ 2554*62c56f98SSadaf Ebrahimi -S "error" \ 2555*62c56f98SSadaf Ebrahimi -C "error" 2556*62c56f98SSadaf Ebrahimi 2557*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 2558*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_CRT_PARSE_C 2559*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 2560*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2561*62c56f98SSadaf Ebrahimirun_test "Opaque key for client/server authentication: DHE-RSA" \ 2562*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=required key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2563*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none" \ 2564*62c56f98SSadaf Ebrahimi "$P_CLI key_opaque=1 crt_file=data_files/server2-sha256.crt \ 2565*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none \ 2566*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA" \ 2567*62c56f98SSadaf Ebrahimi 0 \ 2568*62c56f98SSadaf Ebrahimi -c "key type: Opaque" \ 2569*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 2570*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-DHE-RSA" \ 2571*62c56f98SSadaf Ebrahimi -s "key types: Opaque, none" \ 2572*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 2573*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS-DHE-RSA" \ 2574*62c56f98SSadaf Ebrahimi -S "error" \ 2575*62c56f98SSadaf Ebrahimi -C "error" 2576*62c56f98SSadaf Ebrahimi 2577*62c56f98SSadaf Ebrahimi 2578*62c56f98SSadaf Ebrahimi# Test ciphersuites which we expect to be fully supported by PSA Crypto 2579*62c56f98SSadaf Ebrahimi# and check that we don't fall back to Mbed TLS' internal crypto primitives. 2580*62c56f98SSadaf Ebrahimirun_test_psa TLS-ECDHE-ECDSA-WITH-AES-128-CCM 2581*62c56f98SSadaf Ebrahimirun_test_psa TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8 2582*62c56f98SSadaf Ebrahimirun_test_psa TLS-ECDHE-ECDSA-WITH-AES-256-CCM 2583*62c56f98SSadaf Ebrahimirun_test_psa TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8 2584*62c56f98SSadaf Ebrahimirun_test_psa TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 2585*62c56f98SSadaf Ebrahimirun_test_psa TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 2586*62c56f98SSadaf Ebrahimirun_test_psa TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA 2587*62c56f98SSadaf Ebrahimirun_test_psa TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256 2588*62c56f98SSadaf Ebrahimirun_test_psa TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384 2589*62c56f98SSadaf Ebrahimi 2590*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP521R1_ENABLED 2591*62c56f98SSadaf Ebrahimirun_test_psa_force_curve "secp521r1" 2592*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_BP512R1_ENABLED 2593*62c56f98SSadaf Ebrahimirun_test_psa_force_curve "brainpoolP512r1" 2594*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP384R1_ENABLED 2595*62c56f98SSadaf Ebrahimirun_test_psa_force_curve "secp384r1" 2596*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_BP384R1_ENABLED 2597*62c56f98SSadaf Ebrahimirun_test_psa_force_curve "brainpoolP384r1" 2598*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 2599*62c56f98SSadaf Ebrahimirun_test_psa_force_curve "secp256r1" 2600*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256K1_ENABLED 2601*62c56f98SSadaf Ebrahimirun_test_psa_force_curve "secp256k1" 2602*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_BP256R1_ENABLED 2603*62c56f98SSadaf Ebrahimirun_test_psa_force_curve "brainpoolP256r1" 2604*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP224R1_ENABLED 2605*62c56f98SSadaf Ebrahimirun_test_psa_force_curve "secp224r1" 2606*62c56f98SSadaf Ebrahimi## SECP224K1 is buggy via the PSA API 2607*62c56f98SSadaf Ebrahimi## (https://github.com/Mbed-TLS/mbedtls/issues/3541), 2608*62c56f98SSadaf Ebrahimi## so it is disabled in PSA even when it's enabled in Mbed TLS. 2609*62c56f98SSadaf Ebrahimi## The proper dependency would be on PSA_WANT_ECC_SECP_K1_224 but 2610*62c56f98SSadaf Ebrahimi## dependencies on PSA symbols in ssl-opt.sh are not implemented yet. 2611*62c56f98SSadaf Ebrahimi#requires_config_enabled MBEDTLS_ECP_DP_SECP224K1_ENABLED 2612*62c56f98SSadaf Ebrahimi#run_test_psa_force_curve "secp224k1" 2613*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP192R1_ENABLED 2614*62c56f98SSadaf Ebrahimirun_test_psa_force_curve "secp192r1" 2615*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP192K1_ENABLED 2616*62c56f98SSadaf Ebrahimirun_test_psa_force_curve "secp192k1" 2617*62c56f98SSadaf Ebrahimi 2618*62c56f98SSadaf Ebrahimi# Test current time in ServerHello 2619*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_HAVE_TIME 2620*62c56f98SSadaf Ebrahimirun_test "ServerHello contains gmt_unix_time" \ 2621*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 2622*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3" \ 2623*62c56f98SSadaf Ebrahimi 0 \ 2624*62c56f98SSadaf Ebrahimi -f "check_server_hello_time" \ 2625*62c56f98SSadaf Ebrahimi -F "check_server_hello_time" 2626*62c56f98SSadaf Ebrahimi 2627*62c56f98SSadaf Ebrahimi# Test for uniqueness of IVs in AEAD ciphersuites 2628*62c56f98SSadaf Ebrahimirun_test "Unique IV in GCM" \ 2629*62c56f98SSadaf Ebrahimi "$P_SRV exchanges=20 debug_level=4" \ 2630*62c56f98SSadaf Ebrahimi "$P_CLI exchanges=20 debug_level=4 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384" \ 2631*62c56f98SSadaf Ebrahimi 0 \ 2632*62c56f98SSadaf Ebrahimi -u "IV used" \ 2633*62c56f98SSadaf Ebrahimi -U "IV used" 2634*62c56f98SSadaf Ebrahimi 2635*62c56f98SSadaf Ebrahimi# Test for correctness of sent single supported algorithm 2636*62c56f98SSadaf Ebrahimirequires_any_configs_enabled "MBEDTLS_ECP_DP_SECP256R1_ENABLED \ 2637*62c56f98SSadaf Ebrahimi PSA_WANT_ECC_SECP_R1_256" 2638*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 2639*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 2640*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 2641*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 2642*62c56f98SSadaf Ebrahimirequires_pk_alg "ECDSA" 2643*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2644*62c56f98SSadaf Ebrahimirun_test "Single supported algorithm sending: mbedtls client" \ 2645*62c56f98SSadaf Ebrahimi "$P_SRV sig_algs=ecdsa_secp256r1_sha256 auth_mode=required" \ 2646*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 sig_algs=ecdsa_secp256r1_sha256 debug_level=3" \ 2647*62c56f98SSadaf Ebrahimi 0 \ 2648*62c56f98SSadaf Ebrahimi -c "Supported Signature Algorithm found: 04 03" 2649*62c56f98SSadaf Ebrahimi 2650*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2651*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 2652*62c56f98SSadaf Ebrahimirequires_any_configs_enabled "MBEDTLS_ECP_DP_SECP256R1_ENABLED \ 2653*62c56f98SSadaf Ebrahimi PSA_WANT_ECC_SECP_R1_256" 2654*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 2655*62c56f98SSadaf Ebrahimirun_test "Single supported algorithm sending: openssl client" \ 2656*62c56f98SSadaf Ebrahimi "$P_SRV sig_algs=ecdsa_secp256r1_sha256 auth_mode=required" \ 2657*62c56f98SSadaf Ebrahimi "$O_CLI -cert data_files/server6.crt \ 2658*62c56f98SSadaf Ebrahimi -key data_files/server6.key" \ 2659*62c56f98SSadaf Ebrahimi 0 2660*62c56f98SSadaf Ebrahimi 2661*62c56f98SSadaf Ebrahimi# Tests for certificate verification callback 2662*62c56f98SSadaf Ebrahimirun_test "Configuration-specific CRT verification callback" \ 2663*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 2664*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 context_crt_cb=0 debug_level=3" \ 2665*62c56f98SSadaf Ebrahimi 0 \ 2666*62c56f98SSadaf Ebrahimi -S "error" \ 2667*62c56f98SSadaf Ebrahimi -c "Verify requested for " \ 2668*62c56f98SSadaf Ebrahimi -c "Use configuration-specific verification callback" \ 2669*62c56f98SSadaf Ebrahimi -C "Use context-specific verification callback" \ 2670*62c56f98SSadaf Ebrahimi -C "error" 2671*62c56f98SSadaf Ebrahimi 2672*62c56f98SSadaf Ebrahimirun_test "Context-specific CRT verification callback" \ 2673*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 2674*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 context_crt_cb=1 debug_level=3" \ 2675*62c56f98SSadaf Ebrahimi 0 \ 2676*62c56f98SSadaf Ebrahimi -S "error" \ 2677*62c56f98SSadaf Ebrahimi -c "Verify requested for " \ 2678*62c56f98SSadaf Ebrahimi -c "Use context-specific verification callback" \ 2679*62c56f98SSadaf Ebrahimi -C "Use configuration-specific verification callback" \ 2680*62c56f98SSadaf Ebrahimi -C "error" 2681*62c56f98SSadaf Ebrahimi 2682*62c56f98SSadaf Ebrahimi# Tests for SHA-1 support 2683*62c56f98SSadaf Ebrahimirun_test "SHA-1 forbidden by default in server certificate" \ 2684*62c56f98SSadaf Ebrahimi "$P_SRV key_file=data_files/server2.key crt_file=data_files/server2.crt" \ 2685*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=2 force_version=tls12 allow_sha1=0" \ 2686*62c56f98SSadaf Ebrahimi 1 \ 2687*62c56f98SSadaf Ebrahimi -c "The certificate is signed with an unacceptable hash" 2688*62c56f98SSadaf Ebrahimi 2689*62c56f98SSadaf Ebrahimirun_test "SHA-1 explicitly allowed in server certificate" \ 2690*62c56f98SSadaf Ebrahimi "$P_SRV key_file=data_files/server2.key crt_file=data_files/server2.crt" \ 2691*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 allow_sha1=1" \ 2692*62c56f98SSadaf Ebrahimi 0 2693*62c56f98SSadaf Ebrahimi 2694*62c56f98SSadaf Ebrahimirun_test "SHA-256 allowed by default in server certificate" \ 2695*62c56f98SSadaf Ebrahimi "$P_SRV key_file=data_files/server2.key crt_file=data_files/server2-sha256.crt" \ 2696*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 allow_sha1=0" \ 2697*62c56f98SSadaf Ebrahimi 0 2698*62c56f98SSadaf Ebrahimi 2699*62c56f98SSadaf Ebrahimirun_test "SHA-1 forbidden by default in client certificate" \ 2700*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 auth_mode=required allow_sha1=0" \ 2701*62c56f98SSadaf Ebrahimi "$P_CLI key_file=data_files/cli-rsa.key crt_file=data_files/cli-rsa-sha1.crt" \ 2702*62c56f98SSadaf Ebrahimi 1 \ 2703*62c56f98SSadaf Ebrahimi -s "The certificate is signed with an unacceptable hash" 2704*62c56f98SSadaf Ebrahimi 2705*62c56f98SSadaf Ebrahimirun_test "SHA-1 explicitly allowed in client certificate" \ 2706*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 auth_mode=required allow_sha1=1" \ 2707*62c56f98SSadaf Ebrahimi "$P_CLI key_file=data_files/cli-rsa.key crt_file=data_files/cli-rsa-sha1.crt" \ 2708*62c56f98SSadaf Ebrahimi 0 2709*62c56f98SSadaf Ebrahimi 2710*62c56f98SSadaf Ebrahimirun_test "SHA-256 allowed by default in client certificate" \ 2711*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 auth_mode=required allow_sha1=0" \ 2712*62c56f98SSadaf Ebrahimi "$P_CLI key_file=data_files/cli-rsa.key crt_file=data_files/cli-rsa-sha256.crt" \ 2713*62c56f98SSadaf Ebrahimi 0 2714*62c56f98SSadaf Ebrahimi 2715*62c56f98SSadaf Ebrahimi# Tests for datagram packing 2716*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2717*62c56f98SSadaf Ebrahimirun_test "DTLS: multiple records in same datagram, client and server" \ 2718*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=1 debug_level=2" \ 2719*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=1 debug_level=2" \ 2720*62c56f98SSadaf Ebrahimi 0 \ 2721*62c56f98SSadaf Ebrahimi -c "next record in same datagram" \ 2722*62c56f98SSadaf Ebrahimi -s "next record in same datagram" 2723*62c56f98SSadaf Ebrahimi 2724*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2725*62c56f98SSadaf Ebrahimirun_test "DTLS: multiple records in same datagram, client only" \ 2726*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 debug_level=2" \ 2727*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=1 debug_level=2" \ 2728*62c56f98SSadaf Ebrahimi 0 \ 2729*62c56f98SSadaf Ebrahimi -s "next record in same datagram" \ 2730*62c56f98SSadaf Ebrahimi -C "next record in same datagram" 2731*62c56f98SSadaf Ebrahimi 2732*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2733*62c56f98SSadaf Ebrahimirun_test "DTLS: multiple records in same datagram, server only" \ 2734*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=1 debug_level=2" \ 2735*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 debug_level=2" \ 2736*62c56f98SSadaf Ebrahimi 0 \ 2737*62c56f98SSadaf Ebrahimi -S "next record in same datagram" \ 2738*62c56f98SSadaf Ebrahimi -c "next record in same datagram" 2739*62c56f98SSadaf Ebrahimi 2740*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2741*62c56f98SSadaf Ebrahimirun_test "DTLS: multiple records in same datagram, neither client nor server" \ 2742*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 debug_level=2" \ 2743*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 debug_level=2" \ 2744*62c56f98SSadaf Ebrahimi 0 \ 2745*62c56f98SSadaf Ebrahimi -S "next record in same datagram" \ 2746*62c56f98SSadaf Ebrahimi -C "next record in same datagram" 2747*62c56f98SSadaf Ebrahimi 2748*62c56f98SSadaf Ebrahimi# Tests for Context serialization 2749*62c56f98SSadaf Ebrahimi 2750*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2751*62c56f98SSadaf Ebrahimirun_test "Context serialization, client serializes, CCM" \ 2752*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=0 exchanges=2" \ 2753*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=1 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 2754*62c56f98SSadaf Ebrahimi 0 \ 2755*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2756*62c56f98SSadaf Ebrahimi -S "Deserializing connection..." 2757*62c56f98SSadaf Ebrahimi 2758*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2759*62c56f98SSadaf Ebrahimirun_test "Context serialization, client serializes, ChaChaPoly" \ 2760*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=0 exchanges=2" \ 2761*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=1 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2762*62c56f98SSadaf Ebrahimi 0 \ 2763*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2764*62c56f98SSadaf Ebrahimi -S "Deserializing connection..." 2765*62c56f98SSadaf Ebrahimi 2766*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2767*62c56f98SSadaf Ebrahimirun_test "Context serialization, client serializes, GCM" \ 2768*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=0 exchanges=2" \ 2769*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=1 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256" \ 2770*62c56f98SSadaf Ebrahimi 0 \ 2771*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2772*62c56f98SSadaf Ebrahimi -S "Deserializing connection..." 2773*62c56f98SSadaf Ebrahimi 2774*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2775*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2776*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 2777*62c56f98SSadaf Ebrahimirun_test "Context serialization, client serializes, with CID" \ 2778*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=0 exchanges=2 cid=1 cid_val=dead" \ 2779*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=1 exchanges=2 cid=1 cid_val=beef" \ 2780*62c56f98SSadaf Ebrahimi 0 \ 2781*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2782*62c56f98SSadaf Ebrahimi -S "Deserializing connection..." 2783*62c56f98SSadaf Ebrahimi 2784*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2785*62c56f98SSadaf Ebrahimirun_test "Context serialization, server serializes, CCM" \ 2786*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=1 exchanges=2" \ 2787*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=0 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 2788*62c56f98SSadaf Ebrahimi 0 \ 2789*62c56f98SSadaf Ebrahimi -C "Deserializing connection..." \ 2790*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2791*62c56f98SSadaf Ebrahimi 2792*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2793*62c56f98SSadaf Ebrahimirun_test "Context serialization, server serializes, ChaChaPoly" \ 2794*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=1 exchanges=2" \ 2795*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=0 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2796*62c56f98SSadaf Ebrahimi 0 \ 2797*62c56f98SSadaf Ebrahimi -C "Deserializing connection..." \ 2798*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2799*62c56f98SSadaf Ebrahimi 2800*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2801*62c56f98SSadaf Ebrahimirun_test "Context serialization, server serializes, GCM" \ 2802*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=1 exchanges=2" \ 2803*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=0 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256" \ 2804*62c56f98SSadaf Ebrahimi 0 \ 2805*62c56f98SSadaf Ebrahimi -C "Deserializing connection..." \ 2806*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2807*62c56f98SSadaf Ebrahimi 2808*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2809*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2810*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 2811*62c56f98SSadaf Ebrahimirun_test "Context serialization, server serializes, with CID" \ 2812*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=1 exchanges=2 cid=1 cid_val=dead" \ 2813*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=0 exchanges=2 cid=1 cid_val=beef" \ 2814*62c56f98SSadaf Ebrahimi 0 \ 2815*62c56f98SSadaf Ebrahimi -C "Deserializing connection..." \ 2816*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2817*62c56f98SSadaf Ebrahimi 2818*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2819*62c56f98SSadaf Ebrahimirun_test "Context serialization, both serialize, CCM" \ 2820*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=1 exchanges=2" \ 2821*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=1 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 2822*62c56f98SSadaf Ebrahimi 0 \ 2823*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2824*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2825*62c56f98SSadaf Ebrahimi 2826*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2827*62c56f98SSadaf Ebrahimirun_test "Context serialization, both serialize, ChaChaPoly" \ 2828*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=1 exchanges=2" \ 2829*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=1 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2830*62c56f98SSadaf Ebrahimi 0 \ 2831*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2832*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2833*62c56f98SSadaf Ebrahimi 2834*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2835*62c56f98SSadaf Ebrahimirun_test "Context serialization, both serialize, GCM" \ 2836*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=1 exchanges=2" \ 2837*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=1 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256" \ 2838*62c56f98SSadaf Ebrahimi 0 \ 2839*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2840*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2841*62c56f98SSadaf Ebrahimi 2842*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2843*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2844*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 2845*62c56f98SSadaf Ebrahimirun_test "Context serialization, both serialize, with CID" \ 2846*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=1 exchanges=2 cid=1 cid_val=dead" \ 2847*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=1 exchanges=2 cid=1 cid_val=beef" \ 2848*62c56f98SSadaf Ebrahimi 0 \ 2849*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2850*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2851*62c56f98SSadaf Ebrahimi 2852*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2853*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, client serializes, CCM" \ 2854*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=0 exchanges=2" \ 2855*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=2 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 2856*62c56f98SSadaf Ebrahimi 0 \ 2857*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2858*62c56f98SSadaf Ebrahimi -S "Deserializing connection..." 2859*62c56f98SSadaf Ebrahimi 2860*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2861*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2862*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, client serializes, ChaChaPoly" \ 2863*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=0 exchanges=2" \ 2864*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=2 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2865*62c56f98SSadaf Ebrahimi 0 \ 2866*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2867*62c56f98SSadaf Ebrahimi -S "Deserializing connection..." 2868*62c56f98SSadaf Ebrahimi 2869*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2870*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, client serializes, GCM" \ 2871*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=0 exchanges=2" \ 2872*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=2 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256" \ 2873*62c56f98SSadaf Ebrahimi 0 \ 2874*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2875*62c56f98SSadaf Ebrahimi -S "Deserializing connection..." 2876*62c56f98SSadaf Ebrahimi 2877*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2878*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2879*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 2880*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, client serializes, with CID" \ 2881*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=0 exchanges=2 cid=1 cid_val=dead" \ 2882*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=2 exchanges=2 cid=1 cid_val=beef" \ 2883*62c56f98SSadaf Ebrahimi 0 \ 2884*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2885*62c56f98SSadaf Ebrahimi -S "Deserializing connection..." 2886*62c56f98SSadaf Ebrahimi 2887*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2888*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, server serializes, CCM" \ 2889*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=2 exchanges=2" \ 2890*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=0 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 2891*62c56f98SSadaf Ebrahimi 0 \ 2892*62c56f98SSadaf Ebrahimi -C "Deserializing connection..." \ 2893*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2894*62c56f98SSadaf Ebrahimi 2895*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2896*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, server serializes, ChaChaPoly" \ 2897*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=2 exchanges=2" \ 2898*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=0 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2899*62c56f98SSadaf Ebrahimi 0 \ 2900*62c56f98SSadaf Ebrahimi -C "Deserializing connection..." \ 2901*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2902*62c56f98SSadaf Ebrahimi 2903*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2904*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, server serializes, GCM" \ 2905*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=2 exchanges=2" \ 2906*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=0 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2907*62c56f98SSadaf Ebrahimi 0 \ 2908*62c56f98SSadaf Ebrahimi -C "Deserializing connection..." \ 2909*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2910*62c56f98SSadaf Ebrahimi 2911*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2912*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2913*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 2914*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, server serializes, with CID" \ 2915*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=2 exchanges=2 cid=1 cid_val=dead" \ 2916*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=0 exchanges=2 cid=1 cid_val=beef" \ 2917*62c56f98SSadaf Ebrahimi 0 \ 2918*62c56f98SSadaf Ebrahimi -C "Deserializing connection..." \ 2919*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2920*62c56f98SSadaf Ebrahimi 2921*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2922*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, both serialize, CCM" \ 2923*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=2 exchanges=2" \ 2924*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=2 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 2925*62c56f98SSadaf Ebrahimi 0 \ 2926*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2927*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2928*62c56f98SSadaf Ebrahimi 2929*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2930*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, both serialize, ChaChaPoly" \ 2931*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=2 exchanges=2" \ 2932*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=2 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2933*62c56f98SSadaf Ebrahimi 0 \ 2934*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2935*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2936*62c56f98SSadaf Ebrahimi 2937*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2938*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, both serialize, GCM" \ 2939*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=2 exchanges=2" \ 2940*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=2 exchanges=2 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256" \ 2941*62c56f98SSadaf Ebrahimi 0 \ 2942*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2943*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2944*62c56f98SSadaf Ebrahimi 2945*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2946*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2947*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 2948*62c56f98SSadaf Ebrahimirun_test "Context serialization, re-init, both serialize, with CID" \ 2949*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=2 exchanges=2 cid=1 cid_val=dead" \ 2950*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=2 exchanges=2 cid=1 cid_val=beef" \ 2951*62c56f98SSadaf Ebrahimi 0 \ 2952*62c56f98SSadaf Ebrahimi -c "Deserializing connection..." \ 2953*62c56f98SSadaf Ebrahimi -s "Deserializing connection..." 2954*62c56f98SSadaf Ebrahimi 2955*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2956*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION 2957*62c56f98SSadaf Ebrahimirun_test "Saving the serialized context to a file" \ 2958*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 serialize=1 context_file=context_srv.txt" \ 2959*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 serialize=1 context_file=context_cli.txt" \ 2960*62c56f98SSadaf Ebrahimi 0 \ 2961*62c56f98SSadaf Ebrahimi -s "Save serialized context to a file... ok" \ 2962*62c56f98SSadaf Ebrahimi -c "Save serialized context to a file... ok" 2963*62c56f98SSadaf Ebrahimirm -f context_srv.txt 2964*62c56f98SSadaf Ebrahimirm -f context_cli.txt 2965*62c56f98SSadaf Ebrahimi 2966*62c56f98SSadaf Ebrahimi# Tests for DTLS Connection ID extension 2967*62c56f98SSadaf Ebrahimi 2968*62c56f98SSadaf Ebrahimi# So far, the CID API isn't implemented, so we can't 2969*62c56f98SSadaf Ebrahimi# grep for output witnessing its use. This needs to be 2970*62c56f98SSadaf Ebrahimi# changed once the CID extension is implemented. 2971*62c56f98SSadaf Ebrahimi 2972*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2973*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 2974*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli enabled, Srv disabled" \ 2975*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=0" \ 2976*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=deadbeef" \ 2977*62c56f98SSadaf Ebrahimi 0 \ 2978*62c56f98SSadaf Ebrahimi -s "Disable use of CID extension." \ 2979*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 2980*62c56f98SSadaf Ebrahimi -s "Client sent CID extension, but CID disabled" \ 2981*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 2982*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 2983*62c56f98SSadaf Ebrahimi -S "server hello, adding CID extension" \ 2984*62c56f98SSadaf Ebrahimi -C "found CID extension" \ 2985*62c56f98SSadaf Ebrahimi -S "Copy CIDs into SSL transform" \ 2986*62c56f98SSadaf Ebrahimi -C "Copy CIDs into SSL transform" \ 2987*62c56f98SSadaf Ebrahimi -c "Use of Connection ID was rejected by the server" 2988*62c56f98SSadaf Ebrahimi 2989*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 2990*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 2991*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli disabled, Srv enabled" \ 2992*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=deadbeef" \ 2993*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=0" \ 2994*62c56f98SSadaf Ebrahimi 0 \ 2995*62c56f98SSadaf Ebrahimi -c "Disable use of CID extension." \ 2996*62c56f98SSadaf Ebrahimi -C "client hello, adding CID extension" \ 2997*62c56f98SSadaf Ebrahimi -S "found CID extension" \ 2998*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 2999*62c56f98SSadaf Ebrahimi -S "server hello, adding CID extension" \ 3000*62c56f98SSadaf Ebrahimi -C "found CID extension" \ 3001*62c56f98SSadaf Ebrahimi -S "Copy CIDs into SSL transform" \ 3002*62c56f98SSadaf Ebrahimi -C "Copy CIDs into SSL transform" \ 3003*62c56f98SSadaf Ebrahimi -s "Use of Connection ID was not offered by client" 3004*62c56f98SSadaf Ebrahimi 3005*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3006*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3007*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Cli+Srv CID nonempty" \ 3008*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=dead" \ 3009*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=beef" \ 3010*62c56f98SSadaf Ebrahimi 0 \ 3011*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3012*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3013*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3014*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3015*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3016*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3017*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3018*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3019*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3020*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3021*62c56f98SSadaf Ebrahimi -c "Peer CID (length 2 Bytes): de ad" \ 3022*62c56f98SSadaf Ebrahimi -s "Peer CID (length 2 Bytes): be ef" \ 3023*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3024*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 3025*62c56f98SSadaf Ebrahimi 3026*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3027*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3028*62c56f98SSadaf Ebrahimirun_test "Connection ID, 3D: Cli+Srv enabled, Cli+Srv CID nonempty" \ 3029*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5 bad_cid=1" \ 3030*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 dgram_packing=0 cid_val=dead" \ 3031*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 dgram_packing=0 cid_val=beef" \ 3032*62c56f98SSadaf Ebrahimi 0 \ 3033*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3034*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3035*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3036*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3037*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3038*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3039*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3040*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3041*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3042*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3043*62c56f98SSadaf Ebrahimi -c "Peer CID (length 2 Bytes): de ad" \ 3044*62c56f98SSadaf Ebrahimi -s "Peer CID (length 2 Bytes): be ef" \ 3045*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3046*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" \ 3047*62c56f98SSadaf Ebrahimi -c "ignoring unexpected CID" \ 3048*62c56f98SSadaf Ebrahimi -s "ignoring unexpected CID" 3049*62c56f98SSadaf Ebrahimi 3050*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3051*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3052*62c56f98SSadaf Ebrahimirun_test "Connection ID, MTU: Cli+Srv enabled, Cli+Srv CID nonempty" \ 3053*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=800" \ 3054*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 mtu=800 dtls=1 cid=1 cid_val=dead" \ 3055*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 mtu=800 dtls=1 cid=1 cid_val=beef" \ 3056*62c56f98SSadaf Ebrahimi 0 \ 3057*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3058*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3059*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3060*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3061*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3062*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3063*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3064*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3065*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3066*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3067*62c56f98SSadaf Ebrahimi -c "Peer CID (length 2 Bytes): de ad" \ 3068*62c56f98SSadaf Ebrahimi -s "Peer CID (length 2 Bytes): be ef" \ 3069*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3070*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 3071*62c56f98SSadaf Ebrahimi 3072*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3073*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3074*62c56f98SSadaf Ebrahimirun_test "Connection ID, 3D+MTU: Cli+Srv enabled, Cli+Srv CID nonempty" \ 3075*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=800 drop=5 delay=5 duplicate=5 bad_cid=1" \ 3076*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 mtu=800 dtls=1 cid=1 cid_val=dead" \ 3077*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 mtu=800 dtls=1 cid=1 cid_val=beef" \ 3078*62c56f98SSadaf Ebrahimi 0 \ 3079*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3080*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3081*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3082*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3083*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3084*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3085*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3086*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3087*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3088*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3089*62c56f98SSadaf Ebrahimi -c "Peer CID (length 2 Bytes): de ad" \ 3090*62c56f98SSadaf Ebrahimi -s "Peer CID (length 2 Bytes): be ef" \ 3091*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3092*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" \ 3093*62c56f98SSadaf Ebrahimi -c "ignoring unexpected CID" \ 3094*62c56f98SSadaf Ebrahimi -s "ignoring unexpected CID" 3095*62c56f98SSadaf Ebrahimi 3096*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3097*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3098*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Cli CID empty" \ 3099*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=deadbeef" \ 3100*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1" \ 3101*62c56f98SSadaf Ebrahimi 0 \ 3102*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3103*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3104*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3105*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3106*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3107*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3108*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3109*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3110*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3111*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3112*62c56f98SSadaf Ebrahimi -c "Peer CID (length 4 Bytes): de ad be ef" \ 3113*62c56f98SSadaf Ebrahimi -s "Peer CID (length 0 Bytes):" \ 3114*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3115*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 3116*62c56f98SSadaf Ebrahimi 3117*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3118*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3119*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Srv CID empty" \ 3120*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1" \ 3121*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=deadbeef" \ 3122*62c56f98SSadaf Ebrahimi 0 \ 3123*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3124*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3125*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3126*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3127*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3128*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3129*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3130*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3131*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3132*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3133*62c56f98SSadaf Ebrahimi -s "Peer CID (length 4 Bytes): de ad be ef" \ 3134*62c56f98SSadaf Ebrahimi -c "Peer CID (length 0 Bytes):" \ 3135*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3136*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 3137*62c56f98SSadaf Ebrahimi 3138*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3139*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3140*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Cli+Srv CID empty" \ 3141*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1" \ 3142*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1" \ 3143*62c56f98SSadaf Ebrahimi 0 \ 3144*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3145*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3146*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3147*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3148*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3149*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3150*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3151*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3152*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3153*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3154*62c56f98SSadaf Ebrahimi -S "Use of Connection ID has been negotiated" \ 3155*62c56f98SSadaf Ebrahimi -C "Use of Connection ID has been negotiated" 3156*62c56f98SSadaf Ebrahimi 3157*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3158*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Cli+Srv CID nonempty, AES-128-CCM-8" \ 3159*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=dead" \ 3160*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=beef force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 3161*62c56f98SSadaf Ebrahimi 0 \ 3162*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3163*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3164*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3165*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3166*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3167*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3168*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3169*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3170*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3171*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3172*62c56f98SSadaf Ebrahimi -c "Peer CID (length 2 Bytes): de ad" \ 3173*62c56f98SSadaf Ebrahimi -s "Peer CID (length 2 Bytes): be ef" \ 3174*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3175*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 3176*62c56f98SSadaf Ebrahimi 3177*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3178*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Cli CID empty, AES-128-CCM-8" \ 3179*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=deadbeef" \ 3180*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 3181*62c56f98SSadaf Ebrahimi 0 \ 3182*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3183*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3184*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3185*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3186*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3187*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3188*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3189*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3190*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3191*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3192*62c56f98SSadaf Ebrahimi -c "Peer CID (length 4 Bytes): de ad be ef" \ 3193*62c56f98SSadaf Ebrahimi -s "Peer CID (length 0 Bytes):" \ 3194*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3195*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 3196*62c56f98SSadaf Ebrahimi 3197*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3198*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Srv CID empty, AES-128-CCM-8" \ 3199*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1" \ 3200*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=deadbeef force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 3201*62c56f98SSadaf Ebrahimi 0 \ 3202*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3203*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3204*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3205*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3206*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3207*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3208*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3209*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3210*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3211*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3212*62c56f98SSadaf Ebrahimi -s "Peer CID (length 4 Bytes): de ad be ef" \ 3213*62c56f98SSadaf Ebrahimi -c "Peer CID (length 0 Bytes):" \ 3214*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3215*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 3216*62c56f98SSadaf Ebrahimi 3217*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3218*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Cli+Srv CID empty, AES-128-CCM-8" \ 3219*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1" \ 3220*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 3221*62c56f98SSadaf Ebrahimi 0 \ 3222*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3223*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3224*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3225*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3226*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3227*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3228*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3229*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3230*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3231*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3232*62c56f98SSadaf Ebrahimi -S "Use of Connection ID has been negotiated" \ 3233*62c56f98SSadaf Ebrahimi -C "Use of Connection ID has been negotiated" 3234*62c56f98SSadaf Ebrahimi 3235*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3236*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Cli+Srv CID nonempty, AES-128-CBC" \ 3237*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=dead" \ 3238*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=beef force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256" \ 3239*62c56f98SSadaf Ebrahimi 0 \ 3240*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3241*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3242*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3243*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3244*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3245*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3246*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3247*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3248*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3249*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3250*62c56f98SSadaf Ebrahimi -c "Peer CID (length 2 Bytes): de ad" \ 3251*62c56f98SSadaf Ebrahimi -s "Peer CID (length 2 Bytes): be ef" \ 3252*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3253*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 3254*62c56f98SSadaf Ebrahimi 3255*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3256*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Cli CID empty, AES-128-CBC" \ 3257*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=deadbeef" \ 3258*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256" \ 3259*62c56f98SSadaf Ebrahimi 0 \ 3260*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3261*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3262*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3263*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3264*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3265*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3266*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3267*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3268*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3269*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3270*62c56f98SSadaf Ebrahimi -c "Peer CID (length 4 Bytes): de ad be ef" \ 3271*62c56f98SSadaf Ebrahimi -s "Peer CID (length 0 Bytes):" \ 3272*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3273*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 3274*62c56f98SSadaf Ebrahimi 3275*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3276*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Srv CID empty, AES-128-CBC" \ 3277*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1" \ 3278*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=deadbeef force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256" \ 3279*62c56f98SSadaf Ebrahimi 0 \ 3280*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3281*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3282*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3283*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3284*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3285*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3286*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3287*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3288*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3289*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3290*62c56f98SSadaf Ebrahimi -s "Peer CID (length 4 Bytes): de ad be ef" \ 3291*62c56f98SSadaf Ebrahimi -c "Peer CID (length 0 Bytes):" \ 3292*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 3293*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 3294*62c56f98SSadaf Ebrahimi 3295*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3296*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Cli+Srv CID empty, AES-128-CBC" \ 3297*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1" \ 3298*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256" \ 3299*62c56f98SSadaf Ebrahimi 0 \ 3300*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 3301*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 3302*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 3303*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 3304*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 3305*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 3306*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 3307*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 3308*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 3309*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 3310*62c56f98SSadaf Ebrahimi -S "Use of Connection ID has been negotiated" \ 3311*62c56f98SSadaf Ebrahimi -C "Use of Connection ID has been negotiated" 3312*62c56f98SSadaf Ebrahimi 3313*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3314*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3315*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3316*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, renegotiate without change of CID" \ 3317*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=dead renegotiation=1" \ 3318*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=beef renegotiation=1 renegotiate=1" \ 3319*62c56f98SSadaf Ebrahimi 0 \ 3320*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3321*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3322*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3323*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3324*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3325*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3326*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Use of Connection ID has been negotiated" \ 3327*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Use of Connection ID has been negotiated" 3328*62c56f98SSadaf Ebrahimi 3329*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3330*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3331*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3332*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, renegotiate with different CID" \ 3333*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=dead cid_val_renego=beef renegotiation=1" \ 3334*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=beef cid_val_renego=dead renegotiation=1 renegotiate=1" \ 3335*62c56f98SSadaf Ebrahimi 0 \ 3336*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3337*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3338*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3339*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3340*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3341*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3342*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Use of Connection ID has been negotiated" \ 3343*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Use of Connection ID has been negotiated" 3344*62c56f98SSadaf Ebrahimi 3345*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3346*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3347*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3348*62c56f98SSadaf Ebrahimirun_test "Connection ID, no packing: Cli+Srv enabled, renegotiate with different CID" \ 3349*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 dgram_packing=0 cid_val=dead cid_val_renego=beef renegotiation=1" \ 3350*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 dgram_packing=0 cid_val=beef cid_val_renego=dead renegotiation=1 renegotiate=1" \ 3351*62c56f98SSadaf Ebrahimi 0 \ 3352*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3353*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3354*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3355*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3356*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3357*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3358*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Use of Connection ID has been negotiated" \ 3359*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Use of Connection ID has been negotiated" 3360*62c56f98SSadaf Ebrahimi 3361*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3362*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3363*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3364*62c56f98SSadaf Ebrahimirun_test "Connection ID, 3D+MTU: Cli+Srv enabled, renegotiate with different CID" \ 3365*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=800 drop=5 delay=5 duplicate=5 bad_cid=1" \ 3366*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 mtu=800 dtls=1 cid=1 cid_val=dead cid_val_renego=beef renegotiation=1" \ 3367*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 mtu=800 dtls=1 cid=1 cid_val=beef cid_val_renego=dead renegotiation=1 renegotiate=1" \ 3368*62c56f98SSadaf Ebrahimi 0 \ 3369*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3370*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3371*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3372*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3373*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3374*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3375*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Use of Connection ID has been negotiated" \ 3376*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Use of Connection ID has been negotiated" \ 3377*62c56f98SSadaf Ebrahimi -c "ignoring unexpected CID" \ 3378*62c56f98SSadaf Ebrahimi -s "ignoring unexpected CID" 3379*62c56f98SSadaf Ebrahimi 3380*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3381*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3382*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3383*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, renegotiate without CID" \ 3384*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=dead cid_renego=0 renegotiation=1" \ 3385*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=beef cid_renego=0 renegotiation=1 renegotiate=1" \ 3386*62c56f98SSadaf Ebrahimi 0 \ 3387*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3388*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3389*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3390*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3391*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3392*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3393*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Use of Connection ID has been negotiated" \ 3394*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Use of Connection ID has been negotiated" 3395*62c56f98SSadaf Ebrahimi 3396*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3397*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3398*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3399*62c56f98SSadaf Ebrahimirun_test "Connection ID, no packing: Cli+Srv enabled, renegotiate without CID" \ 3400*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 dgram_packing=0 cid=1 cid_val=dead cid_renego=0 renegotiation=1" \ 3401*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 dgram_packing=0 cid=1 cid_val=beef cid_renego=0 renegotiation=1 renegotiate=1" \ 3402*62c56f98SSadaf Ebrahimi 0 \ 3403*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3404*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3405*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3406*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3407*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3408*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3409*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Use of Connection ID has been negotiated" \ 3410*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Use of Connection ID has been negotiated" 3411*62c56f98SSadaf Ebrahimi 3412*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3413*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3414*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3415*62c56f98SSadaf Ebrahimirun_test "Connection ID, 3D+MTU: Cli+Srv enabled, renegotiate without CID" \ 3416*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5 bad_cid=1" \ 3417*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 mtu=800 dtls=1 cid=1 cid_val=dead cid_renego=0 renegotiation=1" \ 3418*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 mtu=800 dtls=1 cid=1 cid_val=beef cid_renego=0 renegotiation=1 renegotiate=1" \ 3419*62c56f98SSadaf Ebrahimi 0 \ 3420*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3421*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3422*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3423*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3424*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3425*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3426*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Use of Connection ID has been negotiated" \ 3427*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Use of Connection ID has been negotiated" \ 3428*62c56f98SSadaf Ebrahimi -c "ignoring unexpected CID" \ 3429*62c56f98SSadaf Ebrahimi -s "ignoring unexpected CID" 3430*62c56f98SSadaf Ebrahimi 3431*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3432*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3433*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3434*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, CID on renegotiation" \ 3435*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=0 cid_renego=1 cid_val_renego=dead renegotiation=1" \ 3436*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=0 cid_renego=1 cid_val_renego=beef renegotiation=1 renegotiate=1" \ 3437*62c56f98SSadaf Ebrahimi 0 \ 3438*62c56f98SSadaf Ebrahimi -S "(initial handshake) Use of Connection ID has been negotiated" \ 3439*62c56f98SSadaf Ebrahimi -C "(initial handshake) Use of Connection ID has been negotiated" \ 3440*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3441*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3442*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Use of Connection ID has been negotiated" \ 3443*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Use of Connection ID has been negotiated" 3444*62c56f98SSadaf Ebrahimi 3445*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3446*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3447*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3448*62c56f98SSadaf Ebrahimirun_test "Connection ID, no packing: Cli+Srv enabled, CID on renegotiation" \ 3449*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 dgram_packing=0 cid=0 cid_renego=1 cid_val_renego=dead renegotiation=1" \ 3450*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 dgram_packing=0 cid=0 cid_renego=1 cid_val_renego=beef renegotiation=1 renegotiate=1" \ 3451*62c56f98SSadaf Ebrahimi 0 \ 3452*62c56f98SSadaf Ebrahimi -S "(initial handshake) Use of Connection ID has been negotiated" \ 3453*62c56f98SSadaf Ebrahimi -C "(initial handshake) Use of Connection ID has been negotiated" \ 3454*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3455*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3456*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Use of Connection ID has been negotiated" \ 3457*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Use of Connection ID has been negotiated" 3458*62c56f98SSadaf Ebrahimi 3459*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3460*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3461*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3462*62c56f98SSadaf Ebrahimirun_test "Connection ID, 3D+MTU: Cli+Srv enabled, CID on renegotiation" \ 3463*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=800 drop=5 delay=5 duplicate=5 bad_cid=1" \ 3464*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 mtu=800 dtls=1 dgram_packing=1 cid=0 cid_renego=1 cid_val_renego=dead renegotiation=1" \ 3465*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 mtu=800 dtls=1 dgram_packing=1 cid=0 cid_renego=1 cid_val_renego=beef renegotiation=1 renegotiate=1" \ 3466*62c56f98SSadaf Ebrahimi 0 \ 3467*62c56f98SSadaf Ebrahimi -S "(initial handshake) Use of Connection ID has been negotiated" \ 3468*62c56f98SSadaf Ebrahimi -C "(initial handshake) Use of Connection ID has been negotiated" \ 3469*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3470*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3471*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Use of Connection ID has been negotiated" \ 3472*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Use of Connection ID has been negotiated" \ 3473*62c56f98SSadaf Ebrahimi -c "ignoring unexpected CID" \ 3474*62c56f98SSadaf Ebrahimi -s "ignoring unexpected CID" 3475*62c56f98SSadaf Ebrahimi 3476*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3477*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3478*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3479*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Cli disables on renegotiation" \ 3480*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=dead renegotiation=1" \ 3481*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=beef cid_renego=0 renegotiation=1 renegotiate=1" \ 3482*62c56f98SSadaf Ebrahimi 0 \ 3483*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3484*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3485*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3486*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3487*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3488*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3489*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Use of Connection ID has been negotiated" \ 3490*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Use of Connection ID has been negotiated" \ 3491*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Use of Connection ID was not offered by client" 3492*62c56f98SSadaf Ebrahimi 3493*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3494*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3495*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3496*62c56f98SSadaf Ebrahimirun_test "Connection ID, 3D: Cli+Srv enabled, Cli disables on renegotiation" \ 3497*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5 bad_cid=1" \ 3498*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=dead renegotiation=1" \ 3499*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=beef cid_renego=0 renegotiation=1 renegotiate=1" \ 3500*62c56f98SSadaf Ebrahimi 0 \ 3501*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3502*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3503*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3504*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3505*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3506*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3507*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Use of Connection ID has been negotiated" \ 3508*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Use of Connection ID has been negotiated" \ 3509*62c56f98SSadaf Ebrahimi -s "(after renegotiation) Use of Connection ID was not offered by client" \ 3510*62c56f98SSadaf Ebrahimi -c "ignoring unexpected CID" \ 3511*62c56f98SSadaf Ebrahimi -s "ignoring unexpected CID" 3512*62c56f98SSadaf Ebrahimi 3513*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3514*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3515*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3516*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, Srv disables on renegotiation" \ 3517*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=dead cid_renego=0 renegotiation=1" \ 3518*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=beef renegotiation=1 renegotiate=1" \ 3519*62c56f98SSadaf Ebrahimi 0 \ 3520*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3521*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3522*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3523*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3524*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3525*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3526*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Use of Connection ID has been negotiated" \ 3527*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Use of Connection ID has been negotiated" \ 3528*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Use of Connection ID was rejected by the server" 3529*62c56f98SSadaf Ebrahimi 3530*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3531*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3532*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 3533*62c56f98SSadaf Ebrahimirun_test "Connection ID, 3D: Cli+Srv enabled, Srv disables on renegotiation" \ 3534*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5 bad_cid=1" \ 3535*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 cid=1 cid_val=dead cid_renego=0 renegotiation=1" \ 3536*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 cid=1 cid_val=beef renegotiation=1 renegotiate=1" \ 3537*62c56f98SSadaf Ebrahimi 0 \ 3538*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3539*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3540*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3541*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3542*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Peer CID (length 2 Bytes): de ad" \ 3543*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Peer CID (length 2 Bytes): be ef" \ 3544*62c56f98SSadaf Ebrahimi -C "(after renegotiation) Use of Connection ID has been negotiated" \ 3545*62c56f98SSadaf Ebrahimi -S "(after renegotiation) Use of Connection ID has been negotiated" \ 3546*62c56f98SSadaf Ebrahimi -c "(after renegotiation) Use of Connection ID was rejected by the server" \ 3547*62c56f98SSadaf Ebrahimi -c "ignoring unexpected CID" \ 3548*62c56f98SSadaf Ebrahimi -s "ignoring unexpected CID" 3549*62c56f98SSadaf Ebrahimi 3550*62c56f98SSadaf Ebrahimi# This and the test below it require MAX_CONTENT_LEN to be at least MFL+1, because the 3551*62c56f98SSadaf Ebrahimi# tests check that the buffer contents are reallocated when the message is 3552*62c56f98SSadaf Ebrahimi# larger than the buffer. 3553*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3554*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH 3555*62c56f98SSadaf Ebrahimirequires_max_content_len 513 3556*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, variable buffer lengths, MFL=512" \ 3557*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 cid=1 cid_val=dead debug_level=2" \ 3558*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite="TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" max_frag_len=512 dtls=1 cid=1 cid_val=beef" \ 3559*62c56f98SSadaf Ebrahimi 0 \ 3560*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3561*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3562*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3563*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3564*62c56f98SSadaf Ebrahimi -s "Reallocating in_buf" \ 3565*62c56f98SSadaf Ebrahimi -s "Reallocating out_buf" 3566*62c56f98SSadaf Ebrahimi 3567*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 3568*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH 3569*62c56f98SSadaf Ebrahimirequires_max_content_len 1025 3570*62c56f98SSadaf Ebrahimirun_test "Connection ID: Cli+Srv enabled, variable buffer lengths, MFL=1024" \ 3571*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 cid=1 cid_val=dead debug_level=2" \ 3572*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite="TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" max_frag_len=1024 dtls=1 cid=1 cid_val=beef" \ 3573*62c56f98SSadaf Ebrahimi 0 \ 3574*62c56f98SSadaf Ebrahimi -c "(initial handshake) Peer CID (length 2 Bytes): de ad" \ 3575*62c56f98SSadaf Ebrahimi -s "(initial handshake) Peer CID (length 2 Bytes): be ef" \ 3576*62c56f98SSadaf Ebrahimi -s "(initial handshake) Use of Connection ID has been negotiated" \ 3577*62c56f98SSadaf Ebrahimi -c "(initial handshake) Use of Connection ID has been negotiated" \ 3578*62c56f98SSadaf Ebrahimi -s "Reallocating in_buf" \ 3579*62c56f98SSadaf Ebrahimi -s "Reallocating out_buf" 3580*62c56f98SSadaf Ebrahimi 3581*62c56f98SSadaf Ebrahimi# Tests for Encrypt-then-MAC extension 3582*62c56f98SSadaf Ebrahimi 3583*62c56f98SSadaf Ebrahimirun_test "Encrypt then MAC: default" \ 3584*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 \ 3585*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 3586*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 3587*62c56f98SSadaf Ebrahimi 0 \ 3588*62c56f98SSadaf Ebrahimi -c "client hello, adding encrypt_then_mac extension" \ 3589*62c56f98SSadaf Ebrahimi -s "found encrypt then mac extension" \ 3590*62c56f98SSadaf Ebrahimi -s "server hello, adding encrypt then mac extension" \ 3591*62c56f98SSadaf Ebrahimi -c "found encrypt_then_mac extension" \ 3592*62c56f98SSadaf Ebrahimi -c "using encrypt then mac" \ 3593*62c56f98SSadaf Ebrahimi -s "using encrypt then mac" 3594*62c56f98SSadaf Ebrahimi 3595*62c56f98SSadaf Ebrahimirun_test "Encrypt then MAC: client enabled, server disabled" \ 3596*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 etm=0 \ 3597*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 3598*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 etm=1" \ 3599*62c56f98SSadaf Ebrahimi 0 \ 3600*62c56f98SSadaf Ebrahimi -c "client hello, adding encrypt_then_mac extension" \ 3601*62c56f98SSadaf Ebrahimi -s "found encrypt then mac extension" \ 3602*62c56f98SSadaf Ebrahimi -S "server hello, adding encrypt then mac extension" \ 3603*62c56f98SSadaf Ebrahimi -C "found encrypt_then_mac extension" \ 3604*62c56f98SSadaf Ebrahimi -C "using encrypt then mac" \ 3605*62c56f98SSadaf Ebrahimi -S "using encrypt then mac" 3606*62c56f98SSadaf Ebrahimi 3607*62c56f98SSadaf Ebrahimirun_test "Encrypt then MAC: client enabled, aead cipher" \ 3608*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 etm=1 \ 3609*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-GCM-SHA256" \ 3610*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 etm=1" \ 3611*62c56f98SSadaf Ebrahimi 0 \ 3612*62c56f98SSadaf Ebrahimi -c "client hello, adding encrypt_then_mac extension" \ 3613*62c56f98SSadaf Ebrahimi -s "found encrypt then mac extension" \ 3614*62c56f98SSadaf Ebrahimi -S "server hello, adding encrypt then mac extension" \ 3615*62c56f98SSadaf Ebrahimi -C "found encrypt_then_mac extension" \ 3616*62c56f98SSadaf Ebrahimi -C "using encrypt then mac" \ 3617*62c56f98SSadaf Ebrahimi -S "using encrypt then mac" 3618*62c56f98SSadaf Ebrahimi 3619*62c56f98SSadaf Ebrahimirun_test "Encrypt then MAC: client disabled, server enabled" \ 3620*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 etm=1 \ 3621*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 3622*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 etm=0" \ 3623*62c56f98SSadaf Ebrahimi 0 \ 3624*62c56f98SSadaf Ebrahimi -C "client hello, adding encrypt_then_mac extension" \ 3625*62c56f98SSadaf Ebrahimi -S "found encrypt then mac extension" \ 3626*62c56f98SSadaf Ebrahimi -S "server hello, adding encrypt then mac extension" \ 3627*62c56f98SSadaf Ebrahimi -C "found encrypt_then_mac extension" \ 3628*62c56f98SSadaf Ebrahimi -C "using encrypt then mac" \ 3629*62c56f98SSadaf Ebrahimi -S "using encrypt then mac" 3630*62c56f98SSadaf Ebrahimi 3631*62c56f98SSadaf Ebrahimi# Tests for Extended Master Secret extension 3632*62c56f98SSadaf Ebrahimi 3633*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_EXTENDED_MASTER_SECRET 3634*62c56f98SSadaf Ebrahimirun_test "Extended Master Secret: default" \ 3635*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 3636*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3" \ 3637*62c56f98SSadaf Ebrahimi 0 \ 3638*62c56f98SSadaf Ebrahimi -c "client hello, adding extended_master_secret extension" \ 3639*62c56f98SSadaf Ebrahimi -s "found extended master secret extension" \ 3640*62c56f98SSadaf Ebrahimi -s "server hello, adding extended master secret extension" \ 3641*62c56f98SSadaf Ebrahimi -c "found extended_master_secret extension" \ 3642*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret" \ 3643*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret" 3644*62c56f98SSadaf Ebrahimi 3645*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_EXTENDED_MASTER_SECRET 3646*62c56f98SSadaf Ebrahimirun_test "Extended Master Secret: client enabled, server disabled" \ 3647*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 extended_ms=0" \ 3648*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 extended_ms=1" \ 3649*62c56f98SSadaf Ebrahimi 0 \ 3650*62c56f98SSadaf Ebrahimi -c "client hello, adding extended_master_secret extension" \ 3651*62c56f98SSadaf Ebrahimi -s "found extended master secret extension" \ 3652*62c56f98SSadaf Ebrahimi -S "server hello, adding extended master secret extension" \ 3653*62c56f98SSadaf Ebrahimi -C "found extended_master_secret extension" \ 3654*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret" \ 3655*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret" 3656*62c56f98SSadaf Ebrahimi 3657*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_EXTENDED_MASTER_SECRET 3658*62c56f98SSadaf Ebrahimirun_test "Extended Master Secret: client disabled, server enabled" \ 3659*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 extended_ms=1" \ 3660*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 extended_ms=0" \ 3661*62c56f98SSadaf Ebrahimi 0 \ 3662*62c56f98SSadaf Ebrahimi -C "client hello, adding extended_master_secret extension" \ 3663*62c56f98SSadaf Ebrahimi -S "found extended master secret extension" \ 3664*62c56f98SSadaf Ebrahimi -S "server hello, adding extended master secret extension" \ 3665*62c56f98SSadaf Ebrahimi -C "found extended_master_secret extension" \ 3666*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret" \ 3667*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret" 3668*62c56f98SSadaf Ebrahimi 3669*62c56f98SSadaf Ebrahimi# Test sending and receiving empty application data records 3670*62c56f98SSadaf Ebrahimi 3671*62c56f98SSadaf Ebrahimirun_test "Encrypt then MAC: empty application data record" \ 3672*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=none debug_level=4 etm=1" \ 3673*62c56f98SSadaf Ebrahimi "$P_CLI auth_mode=none etm=1 request_size=0 force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA" \ 3674*62c56f98SSadaf Ebrahimi 0 \ 3675*62c56f98SSadaf Ebrahimi -S "0000: 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f" \ 3676*62c56f98SSadaf Ebrahimi -s "dumping 'input payload after decrypt' (0 bytes)" \ 3677*62c56f98SSadaf Ebrahimi -c "0 bytes written in 1 fragments" 3678*62c56f98SSadaf Ebrahimi 3679*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3680*62c56f98SSadaf Ebrahimirun_test "Encrypt then MAC: disabled, empty application data record" \ 3681*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=none debug_level=4 etm=0" \ 3682*62c56f98SSadaf Ebrahimi "$P_CLI auth_mode=none etm=0 request_size=0" \ 3683*62c56f98SSadaf Ebrahimi 0 \ 3684*62c56f98SSadaf Ebrahimi -s "dumping 'input payload after decrypt' (0 bytes)" \ 3685*62c56f98SSadaf Ebrahimi -c "0 bytes written in 1 fragments" 3686*62c56f98SSadaf Ebrahimi 3687*62c56f98SSadaf Ebrahimirun_test "Encrypt then MAC, DTLS: empty application data record" \ 3688*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=none debug_level=4 etm=1 dtls=1" \ 3689*62c56f98SSadaf Ebrahimi "$P_CLI auth_mode=none etm=1 request_size=0 force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA dtls=1" \ 3690*62c56f98SSadaf Ebrahimi 0 \ 3691*62c56f98SSadaf Ebrahimi -S "0000: 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f" \ 3692*62c56f98SSadaf Ebrahimi -s "dumping 'input payload after decrypt' (0 bytes)" \ 3693*62c56f98SSadaf Ebrahimi -c "0 bytes written in 1 fragments" 3694*62c56f98SSadaf Ebrahimi 3695*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3696*62c56f98SSadaf Ebrahimirun_test "Encrypt then MAC, DTLS: disabled, empty application data record" \ 3697*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=none debug_level=4 etm=0 dtls=1" \ 3698*62c56f98SSadaf Ebrahimi "$P_CLI auth_mode=none etm=0 request_size=0 dtls=1" \ 3699*62c56f98SSadaf Ebrahimi 0 \ 3700*62c56f98SSadaf Ebrahimi -s "dumping 'input payload after decrypt' (0 bytes)" \ 3701*62c56f98SSadaf Ebrahimi -c "0 bytes written in 1 fragments" 3702*62c56f98SSadaf Ebrahimi 3703*62c56f98SSadaf Ebrahimi# Tests for CBC 1/n-1 record splitting 3704*62c56f98SSadaf Ebrahimi 3705*62c56f98SSadaf Ebrahimirun_test "CBC Record splitting: TLS 1.2, no splitting" \ 3706*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 3707*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA \ 3708*62c56f98SSadaf Ebrahimi request_size=123" \ 3709*62c56f98SSadaf Ebrahimi 0 \ 3710*62c56f98SSadaf Ebrahimi -s "Read from client: 123 bytes read" \ 3711*62c56f98SSadaf Ebrahimi -S "Read from client: 1 bytes read" \ 3712*62c56f98SSadaf Ebrahimi -S "122 bytes read" 3713*62c56f98SSadaf Ebrahimi 3714*62c56f98SSadaf Ebrahimi# Tests for Session Tickets 3715*62c56f98SSadaf Ebrahimi 3716*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: basic" \ 3717*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1" \ 3718*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3719*62c56f98SSadaf Ebrahimi 0 \ 3720*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3721*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3722*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3723*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3724*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3725*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3726*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3727*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3728*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3729*62c56f98SSadaf Ebrahimi 3730*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: manual rotation" \ 3731*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_rotate=1" \ 3732*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3733*62c56f98SSadaf Ebrahimi 0 \ 3734*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3735*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3736*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3737*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3738*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3739*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3740*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3741*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3742*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3743*62c56f98SSadaf Ebrahimi 3744*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: cache disabled" \ 3745*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 cache_max=0" \ 3746*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3747*62c56f98SSadaf Ebrahimi 0 \ 3748*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3749*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3750*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3751*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3752*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3753*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3754*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3755*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3756*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3757*62c56f98SSadaf Ebrahimi 3758*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: timeout" \ 3759*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 cache_max=0 ticket_timeout=1" \ 3760*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1 reco_delay=2000" \ 3761*62c56f98SSadaf Ebrahimi 0 \ 3762*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3763*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3764*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3765*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3766*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3767*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3768*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 3769*62c56f98SSadaf Ebrahimi -S "a session has been resumed" \ 3770*62c56f98SSadaf Ebrahimi -C "a session has been resumed" 3771*62c56f98SSadaf Ebrahimi 3772*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: session copy" \ 3773*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 cache_max=0" \ 3774*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1 reco_mode=0" \ 3775*62c56f98SSadaf Ebrahimi 0 \ 3776*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3777*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3778*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3779*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3780*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3781*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3782*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3783*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3784*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3785*62c56f98SSadaf Ebrahimi 3786*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3787*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: openssl server" \ 3788*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2" \ 3789*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 tickets=1 reconnect=1" \ 3790*62c56f98SSadaf Ebrahimi 0 \ 3791*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3792*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3793*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3794*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3795*62c56f98SSadaf Ebrahimi 3796*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 3797*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: openssl client" \ 3798*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1" \ 3799*62c56f98SSadaf Ebrahimi "( $O_CLI -sess_out $SESSION; \ 3800*62c56f98SSadaf Ebrahimi $O_CLI -sess_in $SESSION; \ 3801*62c56f98SSadaf Ebrahimi rm -f $SESSION )" \ 3802*62c56f98SSadaf Ebrahimi 0 \ 3803*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3804*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3805*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3806*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3807*62c56f98SSadaf Ebrahimi -s "a session has been resumed" 3808*62c56f98SSadaf Ebrahimi 3809*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: AES-128-GCM" \ 3810*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=AES-128-GCM" \ 3811*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3812*62c56f98SSadaf Ebrahimi 0 \ 3813*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3814*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3815*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3816*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3817*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3818*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3819*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3820*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3821*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3822*62c56f98SSadaf Ebrahimi 3823*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: AES-192-GCM" \ 3824*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=AES-192-GCM" \ 3825*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3826*62c56f98SSadaf Ebrahimi 0 \ 3827*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3828*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3829*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3830*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3831*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3832*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3833*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3834*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3835*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3836*62c56f98SSadaf Ebrahimi 3837*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: AES-128-CCM" \ 3838*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=AES-128-CCM" \ 3839*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3840*62c56f98SSadaf Ebrahimi 0 \ 3841*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3842*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3843*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3844*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3845*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3846*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3847*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3848*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3849*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3850*62c56f98SSadaf Ebrahimi 3851*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: AES-192-CCM" \ 3852*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=AES-192-CCM" \ 3853*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3854*62c56f98SSadaf Ebrahimi 0 \ 3855*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3856*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3857*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3858*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3859*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3860*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3861*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3862*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3863*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3864*62c56f98SSadaf Ebrahimi 3865*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: AES-256-CCM" \ 3866*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=AES-256-CCM" \ 3867*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3868*62c56f98SSadaf Ebrahimi 0 \ 3869*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3870*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3871*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3872*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3873*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3874*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3875*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3876*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3877*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3878*62c56f98SSadaf Ebrahimi 3879*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: CAMELLIA-128-CCM" \ 3880*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=CAMELLIA-128-CCM" \ 3881*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3882*62c56f98SSadaf Ebrahimi 0 \ 3883*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3884*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3885*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3886*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3887*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3888*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3889*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3890*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3891*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3892*62c56f98SSadaf Ebrahimi 3893*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: CAMELLIA-192-CCM" \ 3894*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=CAMELLIA-192-CCM" \ 3895*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3896*62c56f98SSadaf Ebrahimi 0 \ 3897*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3898*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3899*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3900*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3901*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3902*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3903*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3904*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3905*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3906*62c56f98SSadaf Ebrahimi 3907*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: CAMELLIA-256-CCM" \ 3908*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=CAMELLIA-256-CCM" \ 3909*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3910*62c56f98SSadaf Ebrahimi 0 \ 3911*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3912*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3913*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3914*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3915*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3916*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3917*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3918*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3919*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3920*62c56f98SSadaf Ebrahimi 3921*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: ARIA-128-GCM" \ 3922*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=ARIA-128-GCM" \ 3923*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3924*62c56f98SSadaf Ebrahimi 0 \ 3925*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3926*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3927*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3928*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3929*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3930*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3931*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3932*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3933*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3934*62c56f98SSadaf Ebrahimi 3935*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: ARIA-192-GCM" \ 3936*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=ARIA-192-GCM" \ 3937*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3938*62c56f98SSadaf Ebrahimi 0 \ 3939*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3940*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3941*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3942*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3943*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3944*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3945*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3946*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3947*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3948*62c56f98SSadaf Ebrahimi 3949*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: ARIA-256-GCM" \ 3950*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=ARIA-256-GCM" \ 3951*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3952*62c56f98SSadaf Ebrahimi 0 \ 3953*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3954*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3955*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3956*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3957*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3958*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3959*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3960*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3961*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3962*62c56f98SSadaf Ebrahimi 3963*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: ARIA-128-CCM" \ 3964*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=ARIA-128-CCM" \ 3965*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3966*62c56f98SSadaf Ebrahimi 0 \ 3967*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3968*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3969*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3970*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3971*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3972*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3973*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3974*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3975*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3976*62c56f98SSadaf Ebrahimi 3977*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: ARIA-192-CCM" \ 3978*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=ARIA-192-CCM" \ 3979*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3980*62c56f98SSadaf Ebrahimi 0 \ 3981*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3982*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3983*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3984*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3985*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 3986*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 3987*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 3988*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 3989*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 3990*62c56f98SSadaf Ebrahimi 3991*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: ARIA-256-CCM" \ 3992*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=ARIA-256-CCM" \ 3993*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 3994*62c56f98SSadaf Ebrahimi 0 \ 3995*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 3996*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 3997*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 3998*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 3999*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 4000*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4001*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 4002*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4003*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4004*62c56f98SSadaf Ebrahimi 4005*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets: CHACHA20-POLY1305" \ 4006*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1 ticket_aead=CHACHA20-POLY1305" \ 4007*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 4008*62c56f98SSadaf Ebrahimi 0 \ 4009*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 4010*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 4011*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 4012*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 4013*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 4014*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4015*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 4016*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4017*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4018*62c56f98SSadaf Ebrahimi 4019*62c56f98SSadaf Ebrahimi# Tests for Session Tickets with DTLS 4020*62c56f98SSadaf Ebrahimi 4021*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4022*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets, DTLS: basic" \ 4023*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 tickets=1" \ 4024*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 tickets=1 reconnect=1 skip_close_notify=1" \ 4025*62c56f98SSadaf Ebrahimi 0 \ 4026*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 4027*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 4028*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 4029*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 4030*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 4031*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4032*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 4033*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4034*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4035*62c56f98SSadaf Ebrahimi 4036*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4037*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets, DTLS: cache disabled" \ 4038*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 tickets=1 cache_max=0" \ 4039*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 tickets=1 reconnect=1 skip_close_notify=1" \ 4040*62c56f98SSadaf Ebrahimi 0 \ 4041*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 4042*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 4043*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 4044*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 4045*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 4046*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4047*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 4048*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4049*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4050*62c56f98SSadaf Ebrahimi 4051*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4052*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets, DTLS: timeout" \ 4053*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 tickets=1 cache_max=0 ticket_timeout=1" \ 4054*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 tickets=1 reconnect=1 skip_close_notify=1 reco_delay=2000" \ 4055*62c56f98SSadaf Ebrahimi 0 \ 4056*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 4057*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 4058*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 4059*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 4060*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 4061*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4062*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4063*62c56f98SSadaf Ebrahimi -S "a session has been resumed" \ 4064*62c56f98SSadaf Ebrahimi -C "a session has been resumed" 4065*62c56f98SSadaf Ebrahimi 4066*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4067*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets, DTLS: session copy" \ 4068*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 tickets=1 cache_max=0" \ 4069*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 tickets=1 reconnect=1 skip_close_notify=1 reco_mode=0" \ 4070*62c56f98SSadaf Ebrahimi 0 \ 4071*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 4072*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 4073*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 4074*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 4075*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 4076*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4077*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 4078*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4079*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4080*62c56f98SSadaf Ebrahimi 4081*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4082*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets, DTLS: openssl server" \ 4083*62c56f98SSadaf Ebrahimi "$O_SRV -dtls" \ 4084*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=3 tickets=1 reconnect=1" \ 4085*62c56f98SSadaf Ebrahimi 0 \ 4086*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 4087*62c56f98SSadaf Ebrahimi -c "found session_ticket extension" \ 4088*62c56f98SSadaf Ebrahimi -c "parse new session ticket" \ 4089*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4090*62c56f98SSadaf Ebrahimi 4091*62c56f98SSadaf Ebrahimi# For reasons that aren't fully understood, this test randomly fails with high 4092*62c56f98SSadaf Ebrahimi# probability with OpenSSL 1.0.2g on the CI, see #5012. 4093*62c56f98SSadaf Ebrahimirequires_openssl_next 4094*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4095*62c56f98SSadaf Ebrahimirun_test "Session resume using tickets, DTLS: openssl client" \ 4096*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3 tickets=1" \ 4097*62c56f98SSadaf Ebrahimi "( $O_NEXT_CLI -dtls -sess_out $SESSION; \ 4098*62c56f98SSadaf Ebrahimi $O_NEXT_CLI -dtls -sess_in $SESSION; \ 4099*62c56f98SSadaf Ebrahimi rm -f $SESSION )" \ 4100*62c56f98SSadaf Ebrahimi 0 \ 4101*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 4102*62c56f98SSadaf Ebrahimi -s "server hello, adding session ticket extension" \ 4103*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4104*62c56f98SSadaf Ebrahimi -s "session successfully restored from ticket" \ 4105*62c56f98SSadaf Ebrahimi -s "a session has been resumed" 4106*62c56f98SSadaf Ebrahimi 4107*62c56f98SSadaf Ebrahimi# Tests for Session Resume based on session-ID and cache 4108*62c56f98SSadaf Ebrahimi 4109*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4110*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: tickets enabled on client" \ 4111*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=0" \ 4112*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=1 reconnect=1" \ 4113*62c56f98SSadaf Ebrahimi 0 \ 4114*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 4115*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 4116*62c56f98SSadaf Ebrahimi -S "server hello, adding session ticket extension" \ 4117*62c56f98SSadaf Ebrahimi -C "found session_ticket extension" \ 4118*62c56f98SSadaf Ebrahimi -C "parse new session ticket" \ 4119*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4120*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4121*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4122*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4123*62c56f98SSadaf Ebrahimi 4124*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4125*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: tickets enabled on server" \ 4126*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=1" \ 4127*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=0 reconnect=1" \ 4128*62c56f98SSadaf Ebrahimi 0 \ 4129*62c56f98SSadaf Ebrahimi -C "client hello, adding session ticket extension" \ 4130*62c56f98SSadaf Ebrahimi -S "found session ticket extension" \ 4131*62c56f98SSadaf Ebrahimi -S "server hello, adding session ticket extension" \ 4132*62c56f98SSadaf Ebrahimi -C "found session_ticket extension" \ 4133*62c56f98SSadaf Ebrahimi -C "parse new session ticket" \ 4134*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4135*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4136*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4137*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4138*62c56f98SSadaf Ebrahimi 4139*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4140*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: cache_max=0" \ 4141*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=0 cache_max=0" \ 4142*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=0 reconnect=1" \ 4143*62c56f98SSadaf Ebrahimi 0 \ 4144*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4145*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4146*62c56f98SSadaf Ebrahimi -S "a session has been resumed" \ 4147*62c56f98SSadaf Ebrahimi -C "a session has been resumed" 4148*62c56f98SSadaf Ebrahimi 4149*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4150*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: cache_max=1" \ 4151*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=0 cache_max=1" \ 4152*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=0 reconnect=1" \ 4153*62c56f98SSadaf Ebrahimi 0 \ 4154*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4155*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4156*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4157*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4158*62c56f98SSadaf Ebrahimi 4159*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4160*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: cache removed" \ 4161*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=0 cache_remove=1" \ 4162*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=0 reconnect=1" \ 4163*62c56f98SSadaf Ebrahimi 0 \ 4164*62c56f98SSadaf Ebrahimi -C "client hello, adding session ticket extension" \ 4165*62c56f98SSadaf Ebrahimi -S "found session ticket extension" \ 4166*62c56f98SSadaf Ebrahimi -S "server hello, adding session ticket extension" \ 4167*62c56f98SSadaf Ebrahimi -C "found session_ticket extension" \ 4168*62c56f98SSadaf Ebrahimi -C "parse new session ticket" \ 4169*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4170*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4171*62c56f98SSadaf Ebrahimi -S "a session has been resumed" \ 4172*62c56f98SSadaf Ebrahimi -C "a session has been resumed" 4173*62c56f98SSadaf Ebrahimi 4174*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4175*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4176*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: timeout > delay" \ 4177*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=0" \ 4178*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=0 reconnect=1 reco_delay=0" \ 4179*62c56f98SSadaf Ebrahimi 0 \ 4180*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4181*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4182*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4183*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4184*62c56f98SSadaf Ebrahimi 4185*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4186*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: timeout < delay" \ 4187*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=0 cache_timeout=1" \ 4188*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=0 reconnect=1 reco_delay=2000" \ 4189*62c56f98SSadaf Ebrahimi 0 \ 4190*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4191*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4192*62c56f98SSadaf Ebrahimi -S "a session has been resumed" \ 4193*62c56f98SSadaf Ebrahimi -C "a session has been resumed" 4194*62c56f98SSadaf Ebrahimi 4195*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4196*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: no timeout" \ 4197*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=0 cache_timeout=0" \ 4198*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=0 reconnect=1 reco_delay=2000" \ 4199*62c56f98SSadaf Ebrahimi 0 \ 4200*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4201*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4202*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4203*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4204*62c56f98SSadaf Ebrahimi 4205*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4206*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: session copy" \ 4207*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=0" \ 4208*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 tickets=0 reconnect=1 reco_mode=0" \ 4209*62c56f98SSadaf Ebrahimi 0 \ 4210*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4211*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4212*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4213*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4214*62c56f98SSadaf Ebrahimi 4215*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4216*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: openssl client" \ 4217*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 tickets=0" \ 4218*62c56f98SSadaf Ebrahimi "( $O_CLI -sess_out $SESSION; \ 4219*62c56f98SSadaf Ebrahimi $O_CLI -sess_in $SESSION; \ 4220*62c56f98SSadaf Ebrahimi rm -f $SESSION )" \ 4221*62c56f98SSadaf Ebrahimi 0 \ 4222*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 4223*62c56f98SSadaf Ebrahimi -S "server hello, adding session ticket extension" \ 4224*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4225*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4226*62c56f98SSadaf Ebrahimi -s "a session has been resumed" 4227*62c56f98SSadaf Ebrahimi 4228*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4229*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4230*62c56f98SSadaf Ebrahimirun_test "Session resume using cache: openssl server" \ 4231*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2" \ 4232*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 tickets=0 reconnect=1" \ 4233*62c56f98SSadaf Ebrahimi 0 \ 4234*62c56f98SSadaf Ebrahimi -C "found session_ticket extension" \ 4235*62c56f98SSadaf Ebrahimi -C "parse new session ticket" \ 4236*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4237*62c56f98SSadaf Ebrahimi 4238*62c56f98SSadaf Ebrahimi# Tests for Session resume and extensions 4239*62c56f98SSadaf Ebrahimi 4240*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4241*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID 4242*62c56f98SSadaf Ebrahimirun_test "Session resume and connection ID" \ 4243*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 cid=1 cid_val=dead dtls=1 tickets=0" \ 4244*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 cid=1 cid_val=beef dtls=1 tickets=0 reconnect=1" \ 4245*62c56f98SSadaf Ebrahimi 0 \ 4246*62c56f98SSadaf Ebrahimi -c "Enable use of CID extension." \ 4247*62c56f98SSadaf Ebrahimi -s "Enable use of CID extension." \ 4248*62c56f98SSadaf Ebrahimi -c "client hello, adding CID extension" \ 4249*62c56f98SSadaf Ebrahimi -s "found CID extension" \ 4250*62c56f98SSadaf Ebrahimi -s "Use of CID extension negotiated" \ 4251*62c56f98SSadaf Ebrahimi -s "server hello, adding CID extension" \ 4252*62c56f98SSadaf Ebrahimi -c "found CID extension" \ 4253*62c56f98SSadaf Ebrahimi -c "Use of CID extension negotiated" \ 4254*62c56f98SSadaf Ebrahimi -s "Copy CIDs into SSL transform" \ 4255*62c56f98SSadaf Ebrahimi -c "Copy CIDs into SSL transform" \ 4256*62c56f98SSadaf Ebrahimi -c "Peer CID (length 2 Bytes): de ad" \ 4257*62c56f98SSadaf Ebrahimi -s "Peer CID (length 2 Bytes): be ef" \ 4258*62c56f98SSadaf Ebrahimi -s "Use of Connection ID has been negotiated" \ 4259*62c56f98SSadaf Ebrahimi -c "Use of Connection ID has been negotiated" 4260*62c56f98SSadaf Ebrahimi 4261*62c56f98SSadaf Ebrahimi# Tests for Session Resume based on session-ID and cache, DTLS 4262*62c56f98SSadaf Ebrahimi 4263*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4264*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4265*62c56f98SSadaf Ebrahimirun_test "Session resume using cache, DTLS: tickets enabled on client" \ 4266*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3 tickets=0" \ 4267*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=3 tickets=1 reconnect=1 skip_close_notify=1" \ 4268*62c56f98SSadaf Ebrahimi 0 \ 4269*62c56f98SSadaf Ebrahimi -c "client hello, adding session ticket extension" \ 4270*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 4271*62c56f98SSadaf Ebrahimi -S "server hello, adding session ticket extension" \ 4272*62c56f98SSadaf Ebrahimi -C "found session_ticket extension" \ 4273*62c56f98SSadaf Ebrahimi -C "parse new session ticket" \ 4274*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4275*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4276*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4277*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4278*62c56f98SSadaf Ebrahimi 4279*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4280*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4281*62c56f98SSadaf Ebrahimirun_test "Session resume using cache, DTLS: tickets enabled on server" \ 4282*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3 tickets=1" \ 4283*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1" \ 4284*62c56f98SSadaf Ebrahimi 0 \ 4285*62c56f98SSadaf Ebrahimi -C "client hello, adding session ticket extension" \ 4286*62c56f98SSadaf Ebrahimi -S "found session ticket extension" \ 4287*62c56f98SSadaf Ebrahimi -S "server hello, adding session ticket extension" \ 4288*62c56f98SSadaf Ebrahimi -C "found session_ticket extension" \ 4289*62c56f98SSadaf Ebrahimi -C "parse new session ticket" \ 4290*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4291*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4292*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4293*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4294*62c56f98SSadaf Ebrahimi 4295*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4296*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4297*62c56f98SSadaf Ebrahimirun_test "Session resume using cache, DTLS: cache_max=0" \ 4298*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3 tickets=0 cache_max=0" \ 4299*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1" \ 4300*62c56f98SSadaf Ebrahimi 0 \ 4301*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4302*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4303*62c56f98SSadaf Ebrahimi -S "a session has been resumed" \ 4304*62c56f98SSadaf Ebrahimi -C "a session has been resumed" 4305*62c56f98SSadaf Ebrahimi 4306*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4307*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4308*62c56f98SSadaf Ebrahimirun_test "Session resume using cache, DTLS: cache_max=1" \ 4309*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3 tickets=0 cache_max=1" \ 4310*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1" \ 4311*62c56f98SSadaf Ebrahimi 0 \ 4312*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4313*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4314*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4315*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4316*62c56f98SSadaf Ebrahimi 4317*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4318*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4319*62c56f98SSadaf Ebrahimirun_test "Session resume using cache, DTLS: timeout > delay" \ 4320*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3 tickets=0" \ 4321*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1 reco_delay=0" \ 4322*62c56f98SSadaf Ebrahimi 0 \ 4323*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4324*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4325*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4326*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4327*62c56f98SSadaf Ebrahimi 4328*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4329*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4330*62c56f98SSadaf Ebrahimirun_test "Session resume using cache, DTLS: timeout < delay" \ 4331*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3 tickets=0 cache_timeout=1" \ 4332*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1 reco_delay=2000" \ 4333*62c56f98SSadaf Ebrahimi 0 \ 4334*62c56f98SSadaf Ebrahimi -S "session successfully restored from cache" \ 4335*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4336*62c56f98SSadaf Ebrahimi -S "a session has been resumed" \ 4337*62c56f98SSadaf Ebrahimi -C "a session has been resumed" 4338*62c56f98SSadaf Ebrahimi 4339*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4340*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4341*62c56f98SSadaf Ebrahimirun_test "Session resume using cache, DTLS: no timeout" \ 4342*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3 tickets=0 cache_timeout=0" \ 4343*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1 reco_delay=2000" \ 4344*62c56f98SSadaf Ebrahimi 0 \ 4345*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4346*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4347*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4348*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4349*62c56f98SSadaf Ebrahimi 4350*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4351*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4352*62c56f98SSadaf Ebrahimirun_test "Session resume using cache, DTLS: session copy" \ 4353*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3 tickets=0" \ 4354*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1 reco_mode=0" \ 4355*62c56f98SSadaf Ebrahimi 0 \ 4356*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4357*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4358*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 4359*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4360*62c56f98SSadaf Ebrahimi 4361*62c56f98SSadaf Ebrahimi# For reasons that aren't fully understood, this test randomly fails with high 4362*62c56f98SSadaf Ebrahimi# probability with OpenSSL 1.0.2g on the CI, see #5012. 4363*62c56f98SSadaf Ebrahimirequires_openssl_next 4364*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4365*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4366*62c56f98SSadaf Ebrahimirun_test "Session resume using cache, DTLS: openssl client" \ 4367*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3 tickets=0" \ 4368*62c56f98SSadaf Ebrahimi "( $O_NEXT_CLI -dtls -sess_out $SESSION; \ 4369*62c56f98SSadaf Ebrahimi $O_NEXT_CLI -dtls -sess_in $SESSION; \ 4370*62c56f98SSadaf Ebrahimi rm -f $SESSION )" \ 4371*62c56f98SSadaf Ebrahimi 0 \ 4372*62c56f98SSadaf Ebrahimi -s "found session ticket extension" \ 4373*62c56f98SSadaf Ebrahimi -S "server hello, adding session ticket extension" \ 4374*62c56f98SSadaf Ebrahimi -s "session successfully restored from cache" \ 4375*62c56f98SSadaf Ebrahimi -S "session successfully restored from ticket" \ 4376*62c56f98SSadaf Ebrahimi -s "a session has been resumed" 4377*62c56f98SSadaf Ebrahimi 4378*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4379*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 4380*62c56f98SSadaf Ebrahimirun_test "Session resume using cache, DTLS: openssl server" \ 4381*62c56f98SSadaf Ebrahimi "$O_SRV -dtls" \ 4382*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1" \ 4383*62c56f98SSadaf Ebrahimi 0 \ 4384*62c56f98SSadaf Ebrahimi -C "found session_ticket extension" \ 4385*62c56f98SSadaf Ebrahimi -C "parse new session ticket" \ 4386*62c56f98SSadaf Ebrahimi -c "a session has been resumed" 4387*62c56f98SSadaf Ebrahimi 4388*62c56f98SSadaf Ebrahimi# Tests for Max Fragment Length extension 4389*62c56f98SSadaf Ebrahimi 4390*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4391*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4392*62c56f98SSadaf Ebrahimirun_test "Max fragment length: enabled, default" \ 4393*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 4394*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 4395*62c56f98SSadaf Ebrahimi 0 \ 4396*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is $MAX_CONTENT_LEN" \ 4397*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is $MAX_CONTENT_LEN" \ 4398*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is $MAX_CONTENT_LEN" \ 4399*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is $MAX_CONTENT_LEN" \ 4400*62c56f98SSadaf Ebrahimi -C "client hello, adding max_fragment_length extension" \ 4401*62c56f98SSadaf Ebrahimi -S "found max fragment length extension" \ 4402*62c56f98SSadaf Ebrahimi -S "server hello, max_fragment_length extension" \ 4403*62c56f98SSadaf Ebrahimi -C "found max_fragment_length extension" 4404*62c56f98SSadaf Ebrahimi 4405*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4406*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4407*62c56f98SSadaf Ebrahimirun_test "Max fragment length: enabled, default, larger message" \ 4408*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 4409*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 request_size=$(( $MAX_CONTENT_LEN + 1))" \ 4410*62c56f98SSadaf Ebrahimi 0 \ 4411*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is $MAX_CONTENT_LEN" \ 4412*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is $MAX_CONTENT_LEN" \ 4413*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is $MAX_CONTENT_LEN" \ 4414*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is $MAX_CONTENT_LEN" \ 4415*62c56f98SSadaf Ebrahimi -C "client hello, adding max_fragment_length extension" \ 4416*62c56f98SSadaf Ebrahimi -S "found max fragment length extension" \ 4417*62c56f98SSadaf Ebrahimi -S "server hello, max_fragment_length extension" \ 4418*62c56f98SSadaf Ebrahimi -C "found max_fragment_length extension" \ 4419*62c56f98SSadaf Ebrahimi -c "$(( $MAX_CONTENT_LEN + 1)) bytes written in 2 fragments" \ 4420*62c56f98SSadaf Ebrahimi -s "$MAX_CONTENT_LEN bytes read" \ 4421*62c56f98SSadaf Ebrahimi -s "1 bytes read" 4422*62c56f98SSadaf Ebrahimi 4423*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4424*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4425*62c56f98SSadaf Ebrahimirun_test "Max fragment length, DTLS: enabled, default, larger message" \ 4426*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1" \ 4427*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 request_size=$(( $MAX_CONTENT_LEN + 1))" \ 4428*62c56f98SSadaf Ebrahimi 1 \ 4429*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is $MAX_CONTENT_LEN" \ 4430*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is $MAX_CONTENT_LEN" \ 4431*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is $MAX_CONTENT_LEN" \ 4432*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is $MAX_CONTENT_LEN" \ 4433*62c56f98SSadaf Ebrahimi -C "client hello, adding max_fragment_length extension" \ 4434*62c56f98SSadaf Ebrahimi -S "found max fragment length extension" \ 4435*62c56f98SSadaf Ebrahimi -S "server hello, max_fragment_length extension" \ 4436*62c56f98SSadaf Ebrahimi -C "found max_fragment_length extension" \ 4437*62c56f98SSadaf Ebrahimi -c "fragment larger than.*maximum " 4438*62c56f98SSadaf Ebrahimi 4439*62c56f98SSadaf Ebrahimi# Run some tests with MBEDTLS_SSL_MAX_FRAGMENT_LENGTH disabled 4440*62c56f98SSadaf Ebrahimi# (session fragment length will be 16384 regardless of mbedtls 4441*62c56f98SSadaf Ebrahimi# content length configuration.) 4442*62c56f98SSadaf Ebrahimi 4443*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4444*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4445*62c56f98SSadaf Ebrahimirun_test "Max fragment length: disabled, larger message" \ 4446*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 4447*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 request_size=$(( $MAX_CONTENT_LEN + 1))" \ 4448*62c56f98SSadaf Ebrahimi 0 \ 4449*62c56f98SSadaf Ebrahimi -C "Maximum incoming record payload length is 16384" \ 4450*62c56f98SSadaf Ebrahimi -C "Maximum outgoing record payload length is 16384" \ 4451*62c56f98SSadaf Ebrahimi -S "Maximum incoming record payload length is 16384" \ 4452*62c56f98SSadaf Ebrahimi -S "Maximum outgoing record payload length is 16384" \ 4453*62c56f98SSadaf Ebrahimi -c "$(( $MAX_CONTENT_LEN + 1)) bytes written in 2 fragments" \ 4454*62c56f98SSadaf Ebrahimi -s "$MAX_CONTENT_LEN bytes read" \ 4455*62c56f98SSadaf Ebrahimi -s "1 bytes read" 4456*62c56f98SSadaf Ebrahimi 4457*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4458*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4459*62c56f98SSadaf Ebrahimirun_test "Max fragment length, DTLS: disabled, larger message" \ 4460*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1" \ 4461*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 request_size=$(( $MAX_CONTENT_LEN + 1))" \ 4462*62c56f98SSadaf Ebrahimi 1 \ 4463*62c56f98SSadaf Ebrahimi -C "Maximum incoming record payload length is 16384" \ 4464*62c56f98SSadaf Ebrahimi -C "Maximum outgoing record payload length is 16384" \ 4465*62c56f98SSadaf Ebrahimi -S "Maximum incoming record payload length is 16384" \ 4466*62c56f98SSadaf Ebrahimi -S "Maximum outgoing record payload length is 16384" \ 4467*62c56f98SSadaf Ebrahimi -c "fragment larger than.*maximum " 4468*62c56f98SSadaf Ebrahimi 4469*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 4470*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4471*62c56f98SSadaf Ebrahimirun_test "Max fragment length: used by client" \ 4472*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 4473*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 max_frag_len=4096" \ 4474*62c56f98SSadaf Ebrahimi 0 \ 4475*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 4096" \ 4476*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 4096" \ 4477*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 4096" \ 4478*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 4096" \ 4479*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4480*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4481*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4482*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4483*62c56f98SSadaf Ebrahimi 4484*62c56f98SSadaf Ebrahimirequires_max_content_len 1024 4485*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4486*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 512, server 1024" \ 4487*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 max_frag_len=1024" \ 4488*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 max_frag_len=512" \ 4489*62c56f98SSadaf Ebrahimi 0 \ 4490*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 512" \ 4491*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 512" \ 4492*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 512" \ 4493*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 512" \ 4494*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4495*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4496*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4497*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4498*62c56f98SSadaf Ebrahimi 4499*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 4500*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4501*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 512, server 2048" \ 4502*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 max_frag_len=2048" \ 4503*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 max_frag_len=512" \ 4504*62c56f98SSadaf Ebrahimi 0 \ 4505*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 512" \ 4506*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 512" \ 4507*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 512" \ 4508*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 512" \ 4509*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4510*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4511*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4512*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4513*62c56f98SSadaf Ebrahimi 4514*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 4515*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4516*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 512, server 4096" \ 4517*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 max_frag_len=4096" \ 4518*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 max_frag_len=512" \ 4519*62c56f98SSadaf Ebrahimi 0 \ 4520*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 512" \ 4521*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 512" \ 4522*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 512" \ 4523*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 512" \ 4524*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4525*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4526*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4527*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4528*62c56f98SSadaf Ebrahimi 4529*62c56f98SSadaf Ebrahimirequires_max_content_len 1024 4530*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4531*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 1024, server 512" \ 4532*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 max_frag_len=512" \ 4533*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 max_frag_len=1024" \ 4534*62c56f98SSadaf Ebrahimi 0 \ 4535*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 1024" \ 4536*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 1024" \ 4537*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 1024" \ 4538*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 512" \ 4539*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4540*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4541*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4542*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4543*62c56f98SSadaf Ebrahimi 4544*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 4545*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4546*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 1024, server 2048" \ 4547*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 max_frag_len=2048" \ 4548*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 max_frag_len=1024" \ 4549*62c56f98SSadaf Ebrahimi 0 \ 4550*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 1024" \ 4551*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 1024" \ 4552*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 1024" \ 4553*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 1024" \ 4554*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4555*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4556*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4557*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4558*62c56f98SSadaf Ebrahimi 4559*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 4560*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4561*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 1024, server 4096" \ 4562*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 max_frag_len=4096" \ 4563*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 max_frag_len=1024" \ 4564*62c56f98SSadaf Ebrahimi 0 \ 4565*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 1024" \ 4566*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 1024" \ 4567*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 1024" \ 4568*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 1024" \ 4569*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4570*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4571*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4572*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4573*62c56f98SSadaf Ebrahimi 4574*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 4575*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4576*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 2048, server 512" \ 4577*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 max_frag_len=512" \ 4578*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 max_frag_len=2048" \ 4579*62c56f98SSadaf Ebrahimi 0 \ 4580*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 2048" \ 4581*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 2048" \ 4582*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 2048" \ 4583*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 512" \ 4584*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4585*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4586*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4587*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4588*62c56f98SSadaf Ebrahimi 4589*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 4590*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4591*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 2048, server 1024" \ 4592*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 max_frag_len=1024" \ 4593*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 max_frag_len=2048" \ 4594*62c56f98SSadaf Ebrahimi 0 \ 4595*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 2048" \ 4596*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 2048" \ 4597*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 2048" \ 4598*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 1024" \ 4599*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4600*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4601*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4602*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4603*62c56f98SSadaf Ebrahimi 4604*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 4605*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4606*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 2048, server 4096" \ 4607*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 max_frag_len=4096" \ 4608*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 max_frag_len=2048" \ 4609*62c56f98SSadaf Ebrahimi 0 \ 4610*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 2048" \ 4611*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 2048" \ 4612*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 2048" \ 4613*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 2048" \ 4614*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4615*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4616*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4617*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4618*62c56f98SSadaf Ebrahimi 4619*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 4620*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4621*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 4096, server 512" \ 4622*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 max_frag_len=512" \ 4623*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 max_frag_len=4096" \ 4624*62c56f98SSadaf Ebrahimi 0 \ 4625*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 4096" \ 4626*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 4096" \ 4627*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 4096" \ 4628*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 512" \ 4629*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4630*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4631*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4632*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4633*62c56f98SSadaf Ebrahimi 4634*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 4635*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4636*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 4096, server 1024" \ 4637*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 max_frag_len=1024" \ 4638*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 max_frag_len=4096" \ 4639*62c56f98SSadaf Ebrahimi 0 \ 4640*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 4096" \ 4641*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 4096" \ 4642*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 4096" \ 4643*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 1024" \ 4644*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4645*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4646*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4647*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4648*62c56f98SSadaf Ebrahimi 4649*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 4650*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4651*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client 4096, server 2048" \ 4652*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 max_frag_len=2048" \ 4653*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 max_frag_len=4096" \ 4654*62c56f98SSadaf Ebrahimi 0 \ 4655*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 4096" \ 4656*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 4096" \ 4657*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 4096" \ 4658*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 2048" \ 4659*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4660*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4661*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4662*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4663*62c56f98SSadaf Ebrahimi 4664*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 4665*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4666*62c56f98SSadaf Ebrahimirun_test "Max fragment length: used by server" \ 4667*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 max_frag_len=4096" \ 4668*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 4669*62c56f98SSadaf Ebrahimi 0 \ 4670*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is $MAX_CONTENT_LEN" \ 4671*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is $MAX_CONTENT_LEN" \ 4672*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is $MAX_CONTENT_LEN" \ 4673*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 4096" \ 4674*62c56f98SSadaf Ebrahimi -C "client hello, adding max_fragment_length extension" \ 4675*62c56f98SSadaf Ebrahimi -S "found max fragment length extension" \ 4676*62c56f98SSadaf Ebrahimi -S "server hello, max_fragment_length extension" \ 4677*62c56f98SSadaf Ebrahimi -C "found max_fragment_length extension" 4678*62c56f98SSadaf Ebrahimi 4679*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 4680*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4681*62c56f98SSadaf Ebrahimirequires_gnutls 4682*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4683*62c56f98SSadaf Ebrahimirun_test "Max fragment length: gnutls server" \ 4684*62c56f98SSadaf Ebrahimi "$G_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2" \ 4685*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 max_frag_len=4096" \ 4686*62c56f98SSadaf Ebrahimi 0 \ 4687*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 4096" \ 4688*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 4096" \ 4689*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4690*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" 4691*62c56f98SSadaf Ebrahimi 4692*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 4693*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4694*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client, message just fits" \ 4695*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 4696*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 max_frag_len=2048 request_size=2048" \ 4697*62c56f98SSadaf Ebrahimi 0 \ 4698*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 2048" \ 4699*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 2048" \ 4700*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 2048" \ 4701*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 2048" \ 4702*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4703*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4704*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4705*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" \ 4706*62c56f98SSadaf Ebrahimi -c "2048 bytes written in 1 fragments" \ 4707*62c56f98SSadaf Ebrahimi -s "2048 bytes read" 4708*62c56f98SSadaf Ebrahimi 4709*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 4710*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4711*62c56f98SSadaf Ebrahimirun_test "Max fragment length: client, larger message" \ 4712*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 4713*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 max_frag_len=2048 request_size=2345" \ 4714*62c56f98SSadaf Ebrahimi 0 \ 4715*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 2048" \ 4716*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 2048" \ 4717*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 2048" \ 4718*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 2048" \ 4719*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4720*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4721*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4722*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" \ 4723*62c56f98SSadaf Ebrahimi -c "2345 bytes written in 2 fragments" \ 4724*62c56f98SSadaf Ebrahimi -s "2048 bytes read" \ 4725*62c56f98SSadaf Ebrahimi -s "297 bytes read" 4726*62c56f98SSadaf Ebrahimi 4727*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 4728*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4729*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 4730*62c56f98SSadaf Ebrahimirun_test "Max fragment length: DTLS client, larger message" \ 4731*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1" \ 4732*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 max_frag_len=2048 request_size=2345" \ 4733*62c56f98SSadaf Ebrahimi 1 \ 4734*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 2048" \ 4735*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 2048" \ 4736*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 2048" \ 4737*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 2048" \ 4738*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4739*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4740*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4741*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" \ 4742*62c56f98SSadaf Ebrahimi -c "fragment larger than.*maximum" 4743*62c56f98SSadaf Ebrahimi 4744*62c56f98SSadaf Ebrahimi# Tests for Record Size Limit extension 4745*62c56f98SSadaf Ebrahimi 4746*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 4747*62c56f98SSadaf Ebrahimirequires_gnutls_record_size_limit 4748*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RECORD_SIZE_LIMIT 4749*62c56f98SSadaf Ebrahimirun_test "Record Size Limit: TLS 1.3: Server-side parsing, debug output and fatal alert" \ 4750*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 force_version=tls13" \ 4751*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -d 4" \ 4752*62c56f98SSadaf Ebrahimi 1 \ 4753*62c56f98SSadaf Ebrahimi -c "Preparing extension (Record Size Limit/28) for 'client hello'" \ 4754*62c56f98SSadaf Ebrahimi -c "Sending extension Record Size Limit/28 (2 bytes)" \ 4755*62c56f98SSadaf Ebrahimi -s "ClientHello: record_size_limit(28) extension received."\ 4756*62c56f98SSadaf Ebrahimi -s "found record_size_limit extension" \ 4757*62c56f98SSadaf Ebrahimi -s "RecordSizeLimit: 16385 Bytes" \ 4758*62c56f98SSadaf Ebrahimi -c "Received alert \[110]: An unsupported extension was sent" 4759*62c56f98SSadaf Ebrahimi 4760*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 4761*62c56f98SSadaf Ebrahimirequires_gnutls_record_size_limit 4762*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 4763*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RECORD_SIZE_LIMIT 4764*62c56f98SSadaf Ebrahimirun_test "Record Size Limit: TLS 1.3: Client-side parsing, debug output and fatal alert" \ 4765*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%DISABLE_TLS13_COMPAT_MODE --disable-client-cert -d 4" \ 4766*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 force_version=tls13" \ 4767*62c56f98SSadaf Ebrahimi 0 \ 4768*62c56f98SSadaf Ebrahimi -s "Preparing extension (Record Size Limit/28) for 'encrypted extensions'" 4769*62c56f98SSadaf Ebrahimi# The P_CLI can not yet send the Record Size Limit extension. Thus, the G_NEXT_SRV does not send 4770*62c56f98SSadaf Ebrahimi# a response in its EncryptedExtensions record. 4771*62c56f98SSadaf Ebrahimi# -s "Parsing extension 'Record Size Limit/28 (2 bytes)" \ 4772*62c56f98SSadaf Ebrahimi# -s "Sending extension Record Size Limit/28 (2 bytes)" \ 4773*62c56f98SSadaf Ebrahimi# -c "EncryptedExtensions: record_size_limit(28) extension received."\ 4774*62c56f98SSadaf Ebrahimi# -c "found record_size_limit extension" \ 4775*62c56f98SSadaf Ebrahimi# -c "RecordSizeLimit: 16385 Bytes" \ 4776*62c56f98SSadaf Ebrahimi# -s "Received alert \[110]: An unsupported extension was sent" 4777*62c56f98SSadaf Ebrahimi 4778*62c56f98SSadaf Ebrahimi# Tests for renegotiation 4779*62c56f98SSadaf Ebrahimi 4780*62c56f98SSadaf Ebrahimi# Renegotiation SCSV always added, regardless of SSL_RENEGOTIATION 4781*62c56f98SSadaf Ebrahimirun_test "Renegotiation: none, for reference" \ 4782*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 exchanges=2 auth_mode=optional" \ 4783*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 exchanges=2" \ 4784*62c56f98SSadaf Ebrahimi 0 \ 4785*62c56f98SSadaf Ebrahimi -C "client hello, adding renegotiation extension" \ 4786*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4787*62c56f98SSadaf Ebrahimi -S "found renegotiation extension" \ 4788*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4789*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4790*62c56f98SSadaf Ebrahimi -C "=> renegotiate" \ 4791*62c56f98SSadaf Ebrahimi -S "=> renegotiate" \ 4792*62c56f98SSadaf Ebrahimi -S "write hello request" 4793*62c56f98SSadaf Ebrahimi 4794*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4795*62c56f98SSadaf Ebrahimirun_test "Renegotiation: client-initiated" \ 4796*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 exchanges=2 renegotiation=1 auth_mode=optional" \ 4797*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 renegotiate=1" \ 4798*62c56f98SSadaf Ebrahimi 0 \ 4799*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 4800*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4801*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 4802*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4803*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4804*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 4805*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 4806*62c56f98SSadaf Ebrahimi -S "write hello request" 4807*62c56f98SSadaf Ebrahimi 4808*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4809*62c56f98SSadaf Ebrahimirun_test "Renegotiation: server-initiated" \ 4810*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 auth_mode=optional renegotiate=1" \ 4811*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=2 renegotiation=1" \ 4812*62c56f98SSadaf Ebrahimi 0 \ 4813*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 4814*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4815*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 4816*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4817*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4818*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 4819*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 4820*62c56f98SSadaf Ebrahimi -s "write hello request" 4821*62c56f98SSadaf Ebrahimi 4822*62c56f98SSadaf Ebrahimi# Checks that no Signature Algorithm with SHA-1 gets negotiated. Negotiating SHA-1 would mean that 4823*62c56f98SSadaf Ebrahimi# the server did not parse the Signature Algorithm extension. This test is valid only if an MD 4824*62c56f98SSadaf Ebrahimi# algorithm stronger than SHA-1 is enabled in mbedtls_config.h 4825*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4826*62c56f98SSadaf Ebrahimirun_test "Renegotiation: Signature Algorithms parsing, client-initiated" \ 4827*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 exchanges=2 renegotiation=1 auth_mode=optional" \ 4828*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 renegotiate=1" \ 4829*62c56f98SSadaf Ebrahimi 0 \ 4830*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 4831*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4832*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 4833*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4834*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4835*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 4836*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 4837*62c56f98SSadaf Ebrahimi -S "write hello request" \ 4838*62c56f98SSadaf Ebrahimi -S "client hello v3, signature_algorithm ext: 2" # Is SHA-1 negotiated? 4839*62c56f98SSadaf Ebrahimi 4840*62c56f98SSadaf Ebrahimi# Checks that no Signature Algorithm with SHA-1 gets negotiated. Negotiating SHA-1 would mean that 4841*62c56f98SSadaf Ebrahimi# the server did not parse the Signature Algorithm extension. This test is valid only if an MD 4842*62c56f98SSadaf Ebrahimi# algorithm stronger than SHA-1 is enabled in mbedtls_config.h 4843*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4844*62c56f98SSadaf Ebrahimirun_test "Renegotiation: Signature Algorithms parsing, server-initiated" \ 4845*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 auth_mode=optional renegotiate=1" \ 4846*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=2 renegotiation=1" \ 4847*62c56f98SSadaf Ebrahimi 0 \ 4848*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 4849*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4850*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 4851*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4852*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4853*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 4854*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 4855*62c56f98SSadaf Ebrahimi -s "write hello request" \ 4856*62c56f98SSadaf Ebrahimi -S "client hello v3, signature_algorithm ext: 2" # Is SHA-1 negotiated? 4857*62c56f98SSadaf Ebrahimi 4858*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4859*62c56f98SSadaf Ebrahimirun_test "Renegotiation: double" \ 4860*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 exchanges=2 renegotiation=1 auth_mode=optional renegotiate=1" \ 4861*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 renegotiate=1" \ 4862*62c56f98SSadaf Ebrahimi 0 \ 4863*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 4864*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4865*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 4866*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4867*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4868*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 4869*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 4870*62c56f98SSadaf Ebrahimi -s "write hello request" 4871*62c56f98SSadaf Ebrahimi 4872*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4873*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 4874*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 4875*62c56f98SSadaf Ebrahimirun_test "Renegotiation with max fragment length: client 2048, server 512" \ 4876*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 auth_mode=optional renegotiate=1 max_frag_len=512" \ 4877*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=2 renegotiation=1 renegotiate=1 max_frag_len=2048 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ 4878*62c56f98SSadaf Ebrahimi 0 \ 4879*62c56f98SSadaf Ebrahimi -c "Maximum incoming record payload length is 2048" \ 4880*62c56f98SSadaf Ebrahimi -c "Maximum outgoing record payload length is 2048" \ 4881*62c56f98SSadaf Ebrahimi -s "Maximum incoming record payload length is 2048" \ 4882*62c56f98SSadaf Ebrahimi -s "Maximum outgoing record payload length is 512" \ 4883*62c56f98SSadaf Ebrahimi -c "client hello, adding max_fragment_length extension" \ 4884*62c56f98SSadaf Ebrahimi -s "found max fragment length extension" \ 4885*62c56f98SSadaf Ebrahimi -s "server hello, max_fragment_length extension" \ 4886*62c56f98SSadaf Ebrahimi -c "found max_fragment_length extension" \ 4887*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 4888*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4889*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 4890*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4891*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4892*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 4893*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 4894*62c56f98SSadaf Ebrahimi -s "write hello request" 4895*62c56f98SSadaf Ebrahimi 4896*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4897*62c56f98SSadaf Ebrahimirun_test "Renegotiation: client-initiated, server-rejected" \ 4898*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 exchanges=2 renegotiation=0 auth_mode=optional" \ 4899*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 renegotiate=1" \ 4900*62c56f98SSadaf Ebrahimi 1 \ 4901*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 4902*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4903*62c56f98SSadaf Ebrahimi -S "found renegotiation extension" \ 4904*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4905*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4906*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 4907*62c56f98SSadaf Ebrahimi -S "=> renegotiate" \ 4908*62c56f98SSadaf Ebrahimi -S "write hello request" \ 4909*62c56f98SSadaf Ebrahimi -c "SSL - Unexpected message at ServerHello in renegotiation" \ 4910*62c56f98SSadaf Ebrahimi -c "failed" 4911*62c56f98SSadaf Ebrahimi 4912*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4913*62c56f98SSadaf Ebrahimirun_test "Renegotiation: server-initiated, client-rejected, default" \ 4914*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 renegotiate=1 auth_mode=optional" \ 4915*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=2 renegotiation=0" \ 4916*62c56f98SSadaf Ebrahimi 0 \ 4917*62c56f98SSadaf Ebrahimi -C "client hello, adding renegotiation extension" \ 4918*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4919*62c56f98SSadaf Ebrahimi -S "found renegotiation extension" \ 4920*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4921*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4922*62c56f98SSadaf Ebrahimi -C "=> renegotiate" \ 4923*62c56f98SSadaf Ebrahimi -S "=> renegotiate" \ 4924*62c56f98SSadaf Ebrahimi -s "write hello request" \ 4925*62c56f98SSadaf Ebrahimi -S "SSL - An unexpected message was received from our peer" \ 4926*62c56f98SSadaf Ebrahimi -S "failed" 4927*62c56f98SSadaf Ebrahimi 4928*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4929*62c56f98SSadaf Ebrahimirun_test "Renegotiation: server-initiated, client-rejected, not enforced" \ 4930*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 renegotiate=1 \ 4931*62c56f98SSadaf Ebrahimi renego_delay=-1 auth_mode=optional" \ 4932*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=2 renegotiation=0" \ 4933*62c56f98SSadaf Ebrahimi 0 \ 4934*62c56f98SSadaf Ebrahimi -C "client hello, adding renegotiation extension" \ 4935*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4936*62c56f98SSadaf Ebrahimi -S "found renegotiation extension" \ 4937*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4938*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4939*62c56f98SSadaf Ebrahimi -C "=> renegotiate" \ 4940*62c56f98SSadaf Ebrahimi -S "=> renegotiate" \ 4941*62c56f98SSadaf Ebrahimi -s "write hello request" \ 4942*62c56f98SSadaf Ebrahimi -S "SSL - An unexpected message was received from our peer" \ 4943*62c56f98SSadaf Ebrahimi -S "failed" 4944*62c56f98SSadaf Ebrahimi 4945*62c56f98SSadaf Ebrahimi# delay 2 for 1 alert record + 1 application data record 4946*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4947*62c56f98SSadaf Ebrahimirun_test "Renegotiation: server-initiated, client-rejected, delay 2" \ 4948*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 renegotiate=1 \ 4949*62c56f98SSadaf Ebrahimi renego_delay=2 auth_mode=optional" \ 4950*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=2 renegotiation=0" \ 4951*62c56f98SSadaf Ebrahimi 0 \ 4952*62c56f98SSadaf Ebrahimi -C "client hello, adding renegotiation extension" \ 4953*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4954*62c56f98SSadaf Ebrahimi -S "found renegotiation extension" \ 4955*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4956*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4957*62c56f98SSadaf Ebrahimi -C "=> renegotiate" \ 4958*62c56f98SSadaf Ebrahimi -S "=> renegotiate" \ 4959*62c56f98SSadaf Ebrahimi -s "write hello request" \ 4960*62c56f98SSadaf Ebrahimi -S "SSL - An unexpected message was received from our peer" \ 4961*62c56f98SSadaf Ebrahimi -S "failed" 4962*62c56f98SSadaf Ebrahimi 4963*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4964*62c56f98SSadaf Ebrahimirun_test "Renegotiation: server-initiated, client-rejected, delay 0" \ 4965*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 renegotiate=1 \ 4966*62c56f98SSadaf Ebrahimi renego_delay=0 auth_mode=optional" \ 4967*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=2 renegotiation=0" \ 4968*62c56f98SSadaf Ebrahimi 0 \ 4969*62c56f98SSadaf Ebrahimi -C "client hello, adding renegotiation extension" \ 4970*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4971*62c56f98SSadaf Ebrahimi -S "found renegotiation extension" \ 4972*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4973*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4974*62c56f98SSadaf Ebrahimi -C "=> renegotiate" \ 4975*62c56f98SSadaf Ebrahimi -S "=> renegotiate" \ 4976*62c56f98SSadaf Ebrahimi -s "write hello request" \ 4977*62c56f98SSadaf Ebrahimi -s "SSL - An unexpected message was received from our peer" 4978*62c56f98SSadaf Ebrahimi 4979*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4980*62c56f98SSadaf Ebrahimirun_test "Renegotiation: server-initiated, client-accepted, delay 0" \ 4981*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 exchanges=2 renegotiation=1 renegotiate=1 \ 4982*62c56f98SSadaf Ebrahimi renego_delay=0 auth_mode=optional" \ 4983*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=2 renegotiation=1" \ 4984*62c56f98SSadaf Ebrahimi 0 \ 4985*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 4986*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 4987*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 4988*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 4989*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 4990*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 4991*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 4992*62c56f98SSadaf Ebrahimi -s "write hello request" \ 4993*62c56f98SSadaf Ebrahimi -S "SSL - An unexpected message was received from our peer" \ 4994*62c56f98SSadaf Ebrahimi -S "failed" 4995*62c56f98SSadaf Ebrahimi 4996*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 4997*62c56f98SSadaf Ebrahimirun_test "Renegotiation: periodic, just below period" \ 4998*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 exchanges=9 renegotiation=1 renego_period=3 auth_mode=optional" \ 4999*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 exchanges=2 renegotiation=1" \ 5000*62c56f98SSadaf Ebrahimi 0 \ 5001*62c56f98SSadaf Ebrahimi -C "client hello, adding renegotiation extension" \ 5002*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 5003*62c56f98SSadaf Ebrahimi -S "found renegotiation extension" \ 5004*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 5005*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5006*62c56f98SSadaf Ebrahimi -S "record counter limit reached: renegotiate" \ 5007*62c56f98SSadaf Ebrahimi -C "=> renegotiate" \ 5008*62c56f98SSadaf Ebrahimi -S "=> renegotiate" \ 5009*62c56f98SSadaf Ebrahimi -S "write hello request" \ 5010*62c56f98SSadaf Ebrahimi -S "SSL - An unexpected message was received from our peer" \ 5011*62c56f98SSadaf Ebrahimi -S "failed" 5012*62c56f98SSadaf Ebrahimi 5013*62c56f98SSadaf Ebrahimi# one extra exchange to be able to complete renego 5014*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5015*62c56f98SSadaf Ebrahimirun_test "Renegotiation: periodic, just above period" \ 5016*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 exchanges=9 renegotiation=1 renego_period=3 auth_mode=optional" \ 5017*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=4 renegotiation=1" \ 5018*62c56f98SSadaf Ebrahimi 0 \ 5019*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5020*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 5021*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 5022*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 5023*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5024*62c56f98SSadaf Ebrahimi -s "record counter limit reached: renegotiate" \ 5025*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5026*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 5027*62c56f98SSadaf Ebrahimi -s "write hello request" \ 5028*62c56f98SSadaf Ebrahimi -S "SSL - An unexpected message was received from our peer" \ 5029*62c56f98SSadaf Ebrahimi -S "failed" 5030*62c56f98SSadaf Ebrahimi 5031*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5032*62c56f98SSadaf Ebrahimirun_test "Renegotiation: periodic, two times period" \ 5033*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 exchanges=9 renegotiation=1 renego_period=3 auth_mode=optional" \ 5034*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 exchanges=7 renegotiation=1" \ 5035*62c56f98SSadaf Ebrahimi 0 \ 5036*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5037*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 5038*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 5039*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 5040*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5041*62c56f98SSadaf Ebrahimi -s "record counter limit reached: renegotiate" \ 5042*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5043*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 5044*62c56f98SSadaf Ebrahimi -s "write hello request" \ 5045*62c56f98SSadaf Ebrahimi -S "SSL - An unexpected message was received from our peer" \ 5046*62c56f98SSadaf Ebrahimi -S "failed" 5047*62c56f98SSadaf Ebrahimi 5048*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5049*62c56f98SSadaf Ebrahimirun_test "Renegotiation: periodic, above period, disabled" \ 5050*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 exchanges=9 renegotiation=0 renego_period=3 auth_mode=optional" \ 5051*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=4 renegotiation=1" \ 5052*62c56f98SSadaf Ebrahimi 0 \ 5053*62c56f98SSadaf Ebrahimi -C "client hello, adding renegotiation extension" \ 5054*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 5055*62c56f98SSadaf Ebrahimi -S "found renegotiation extension" \ 5056*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 5057*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5058*62c56f98SSadaf Ebrahimi -S "record counter limit reached: renegotiate" \ 5059*62c56f98SSadaf Ebrahimi -C "=> renegotiate" \ 5060*62c56f98SSadaf Ebrahimi -S "=> renegotiate" \ 5061*62c56f98SSadaf Ebrahimi -S "write hello request" \ 5062*62c56f98SSadaf Ebrahimi -S "SSL - An unexpected message was received from our peer" \ 5063*62c56f98SSadaf Ebrahimi -S "failed" 5064*62c56f98SSadaf Ebrahimi 5065*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5066*62c56f98SSadaf Ebrahimirun_test "Renegotiation: nbio, client-initiated" \ 5067*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 nbio=2 exchanges=2 renegotiation=1 auth_mode=optional" \ 5068*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 nbio=2 exchanges=2 renegotiation=1 renegotiate=1" \ 5069*62c56f98SSadaf Ebrahimi 0 \ 5070*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5071*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 5072*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 5073*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 5074*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5075*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5076*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 5077*62c56f98SSadaf Ebrahimi -S "write hello request" 5078*62c56f98SSadaf Ebrahimi 5079*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5080*62c56f98SSadaf Ebrahimirun_test "Renegotiation: nbio, server-initiated" \ 5081*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 nbio=2 exchanges=2 renegotiation=1 renegotiate=1 auth_mode=optional" \ 5082*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 nbio=2 exchanges=2 renegotiation=1" \ 5083*62c56f98SSadaf Ebrahimi 0 \ 5084*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5085*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 5086*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 5087*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 5088*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5089*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5090*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 5091*62c56f98SSadaf Ebrahimi -s "write hello request" 5092*62c56f98SSadaf Ebrahimi 5093*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5094*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5095*62c56f98SSadaf Ebrahimirun_test "Renegotiation: openssl server, client-initiated" \ 5096*62c56f98SSadaf Ebrahimi "$O_SRV -www -tls1_2" \ 5097*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=1 renegotiation=1 renegotiate=1" \ 5098*62c56f98SSadaf Ebrahimi 0 \ 5099*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5100*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5101*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5102*62c56f98SSadaf Ebrahimi -C "ssl_hanshake() returned" \ 5103*62c56f98SSadaf Ebrahimi -C "error" \ 5104*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" 5105*62c56f98SSadaf Ebrahimi 5106*62c56f98SSadaf Ebrahimirequires_gnutls 5107*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5108*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5109*62c56f98SSadaf Ebrahimirun_test "Renegotiation: gnutls server strict, client-initiated" \ 5110*62c56f98SSadaf Ebrahimi "$G_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2:%SAFE_RENEGOTIATION" \ 5111*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=1 renegotiation=1 renegotiate=1" \ 5112*62c56f98SSadaf Ebrahimi 0 \ 5113*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5114*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5115*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5116*62c56f98SSadaf Ebrahimi -C "ssl_hanshake() returned" \ 5117*62c56f98SSadaf Ebrahimi -C "error" \ 5118*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" 5119*62c56f98SSadaf Ebrahimi 5120*62c56f98SSadaf Ebrahimirequires_gnutls 5121*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5122*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5123*62c56f98SSadaf Ebrahimirun_test "Renegotiation: gnutls server unsafe, client-initiated default" \ 5124*62c56f98SSadaf Ebrahimi "$G_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2:%DISABLE_SAFE_RENEGOTIATION" \ 5125*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=1 renegotiation=1 renegotiate=1" \ 5126*62c56f98SSadaf Ebrahimi 1 \ 5127*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5128*62c56f98SSadaf Ebrahimi -C "found renegotiation extension" \ 5129*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5130*62c56f98SSadaf Ebrahimi -c "mbedtls_ssl_handshake() returned" \ 5131*62c56f98SSadaf Ebrahimi -c "error" \ 5132*62c56f98SSadaf Ebrahimi -C "HTTP/1.0 200 [Oo][Kk]" 5133*62c56f98SSadaf Ebrahimi 5134*62c56f98SSadaf Ebrahimirequires_gnutls 5135*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5136*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5137*62c56f98SSadaf Ebrahimirun_test "Renegotiation: gnutls server unsafe, client-inititated no legacy" \ 5138*62c56f98SSadaf Ebrahimi "$G_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2:%DISABLE_SAFE_RENEGOTIATION" \ 5139*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=1 renegotiation=1 renegotiate=1 \ 5140*62c56f98SSadaf Ebrahimi allow_legacy=0" \ 5141*62c56f98SSadaf Ebrahimi 1 \ 5142*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5143*62c56f98SSadaf Ebrahimi -C "found renegotiation extension" \ 5144*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5145*62c56f98SSadaf Ebrahimi -c "mbedtls_ssl_handshake() returned" \ 5146*62c56f98SSadaf Ebrahimi -c "error" \ 5147*62c56f98SSadaf Ebrahimi -C "HTTP/1.0 200 [Oo][Kk]" 5148*62c56f98SSadaf Ebrahimi 5149*62c56f98SSadaf Ebrahimirequires_gnutls 5150*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5151*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5152*62c56f98SSadaf Ebrahimirun_test "Renegotiation: gnutls server unsafe, client-inititated legacy" \ 5153*62c56f98SSadaf Ebrahimi "$G_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2:%DISABLE_SAFE_RENEGOTIATION" \ 5154*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 exchanges=1 renegotiation=1 renegotiate=1 \ 5155*62c56f98SSadaf Ebrahimi allow_legacy=1" \ 5156*62c56f98SSadaf Ebrahimi 0 \ 5157*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5158*62c56f98SSadaf Ebrahimi -C "found renegotiation extension" \ 5159*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5160*62c56f98SSadaf Ebrahimi -C "ssl_hanshake() returned" \ 5161*62c56f98SSadaf Ebrahimi -C "error" \ 5162*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" 5163*62c56f98SSadaf Ebrahimi 5164*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5165*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5166*62c56f98SSadaf Ebrahimirun_test "Renegotiation: DTLS, client-initiated" \ 5167*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 exchanges=2 renegotiation=1" \ 5168*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 exchanges=2 renegotiation=1 renegotiate=1" \ 5169*62c56f98SSadaf Ebrahimi 0 \ 5170*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5171*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 5172*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 5173*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 5174*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5175*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5176*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 5177*62c56f98SSadaf Ebrahimi -S "write hello request" 5178*62c56f98SSadaf Ebrahimi 5179*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5180*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5181*62c56f98SSadaf Ebrahimirun_test "Renegotiation: DTLS, server-initiated" \ 5182*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 exchanges=2 renegotiation=1 renegotiate=1" \ 5183*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 exchanges=2 renegotiation=1 \ 5184*62c56f98SSadaf Ebrahimi read_timeout=1000 max_resend=2" \ 5185*62c56f98SSadaf Ebrahimi 0 \ 5186*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5187*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 5188*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 5189*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 5190*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5191*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5192*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 5193*62c56f98SSadaf Ebrahimi -s "write hello request" 5194*62c56f98SSadaf Ebrahimi 5195*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5196*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5197*62c56f98SSadaf Ebrahimirun_test "Renegotiation: DTLS, renego_period overflow" \ 5198*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 exchanges=4 renegotiation=1 renego_period=18446462598732840962 auth_mode=optional" \ 5199*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 exchanges=4 renegotiation=1" \ 5200*62c56f98SSadaf Ebrahimi 0 \ 5201*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5202*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO" \ 5203*62c56f98SSadaf Ebrahimi -s "found renegotiation extension" \ 5204*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" \ 5205*62c56f98SSadaf Ebrahimi -s "record counter limit reached: renegotiate" \ 5206*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5207*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 5208*62c56f98SSadaf Ebrahimi -s "write hello request" 5209*62c56f98SSadaf Ebrahimi 5210*62c56f98SSadaf Ebrahimirequires_gnutls 5211*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 5212*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5213*62c56f98SSadaf Ebrahimirun_test "Renegotiation: DTLS, gnutls server, client-initiated" \ 5214*62c56f98SSadaf Ebrahimi "$G_SRV -u --mtu 4096" \ 5215*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 exchanges=1 renegotiation=1 renegotiate=1" \ 5216*62c56f98SSadaf Ebrahimi 0 \ 5217*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 5218*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5219*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 5220*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 5221*62c56f98SSadaf Ebrahimi -C "error" \ 5222*62c56f98SSadaf Ebrahimi -s "Extra-header:" 5223*62c56f98SSadaf Ebrahimi 5224*62c56f98SSadaf Ebrahimi# Test for the "secure renegotiation" extension only (no actual renegotiation) 5225*62c56f98SSadaf Ebrahimi 5226*62c56f98SSadaf Ebrahimirequires_gnutls 5227*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5228*62c56f98SSadaf Ebrahimirun_test "Renego ext: gnutls server strict, client default" \ 5229*62c56f98SSadaf Ebrahimi "$G_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2:%SAFE_RENEGOTIATION" \ 5230*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 5231*62c56f98SSadaf Ebrahimi 0 \ 5232*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 5233*62c56f98SSadaf Ebrahimi -C "error" \ 5234*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" 5235*62c56f98SSadaf Ebrahimi 5236*62c56f98SSadaf Ebrahimirequires_gnutls 5237*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5238*62c56f98SSadaf Ebrahimirun_test "Renego ext: gnutls server unsafe, client default" \ 5239*62c56f98SSadaf Ebrahimi "$G_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2:%DISABLE_SAFE_RENEGOTIATION" \ 5240*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 5241*62c56f98SSadaf Ebrahimi 0 \ 5242*62c56f98SSadaf Ebrahimi -C "found renegotiation extension" \ 5243*62c56f98SSadaf Ebrahimi -C "error" \ 5244*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" 5245*62c56f98SSadaf Ebrahimi 5246*62c56f98SSadaf Ebrahimirequires_gnutls 5247*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5248*62c56f98SSadaf Ebrahimirun_test "Renego ext: gnutls server unsafe, client break legacy" \ 5249*62c56f98SSadaf Ebrahimi "$G_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2:%DISABLE_SAFE_RENEGOTIATION" \ 5250*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 allow_legacy=-1" \ 5251*62c56f98SSadaf Ebrahimi 1 \ 5252*62c56f98SSadaf Ebrahimi -C "found renegotiation extension" \ 5253*62c56f98SSadaf Ebrahimi -c "error" \ 5254*62c56f98SSadaf Ebrahimi -C "HTTP/1.0 200 [Oo][Kk]" 5255*62c56f98SSadaf Ebrahimi 5256*62c56f98SSadaf Ebrahimirequires_gnutls 5257*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5258*62c56f98SSadaf Ebrahimirun_test "Renego ext: gnutls client strict, server default" \ 5259*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 5260*62c56f98SSadaf Ebrahimi "$G_CLI --priority=NORMAL:%SAFE_RENEGOTIATION localhost" \ 5261*62c56f98SSadaf Ebrahimi 0 \ 5262*62c56f98SSadaf Ebrahimi -s "received TLS_EMPTY_RENEGOTIATION_INFO\|found renegotiation extension" \ 5263*62c56f98SSadaf Ebrahimi -s "server hello, secure renegotiation extension" 5264*62c56f98SSadaf Ebrahimi 5265*62c56f98SSadaf Ebrahimirequires_gnutls 5266*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5267*62c56f98SSadaf Ebrahimirun_test "Renego ext: gnutls client unsafe, server default" \ 5268*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 5269*62c56f98SSadaf Ebrahimi "$G_CLI --priority=NORMAL:%DISABLE_SAFE_RENEGOTIATION localhost" \ 5270*62c56f98SSadaf Ebrahimi 0 \ 5271*62c56f98SSadaf Ebrahimi -S "received TLS_EMPTY_RENEGOTIATION_INFO\|found renegotiation extension" \ 5272*62c56f98SSadaf Ebrahimi -S "server hello, secure renegotiation extension" 5273*62c56f98SSadaf Ebrahimi 5274*62c56f98SSadaf Ebrahimirequires_gnutls 5275*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5276*62c56f98SSadaf Ebrahimirun_test "Renego ext: gnutls client unsafe, server break legacy" \ 5277*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 allow_legacy=-1" \ 5278*62c56f98SSadaf Ebrahimi "$G_CLI --priority=NORMAL:%DISABLE_SAFE_RENEGOTIATION localhost" \ 5279*62c56f98SSadaf Ebrahimi 1 \ 5280*62c56f98SSadaf Ebrahimi -S "received TLS_EMPTY_RENEGOTIATION_INFO\|found renegotiation extension" \ 5281*62c56f98SSadaf Ebrahimi -S "server hello, secure renegotiation extension" 5282*62c56f98SSadaf Ebrahimi 5283*62c56f98SSadaf Ebrahimi# Tests for silently dropping trailing extra bytes in .der certificates 5284*62c56f98SSadaf Ebrahimi 5285*62c56f98SSadaf Ebrahimirequires_gnutls 5286*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5287*62c56f98SSadaf Ebrahimirun_test "DER format: no trailing bytes" \ 5288*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-der0.crt \ 5289*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5290*62c56f98SSadaf Ebrahimi "$G_CLI localhost" \ 5291*62c56f98SSadaf Ebrahimi 0 \ 5292*62c56f98SSadaf Ebrahimi -c "Handshake was completed" \ 5293*62c56f98SSadaf Ebrahimi 5294*62c56f98SSadaf Ebrahimirequires_gnutls 5295*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5296*62c56f98SSadaf Ebrahimirun_test "DER format: with a trailing zero byte" \ 5297*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-der1a.crt \ 5298*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5299*62c56f98SSadaf Ebrahimi "$G_CLI localhost" \ 5300*62c56f98SSadaf Ebrahimi 0 \ 5301*62c56f98SSadaf Ebrahimi -c "Handshake was completed" \ 5302*62c56f98SSadaf Ebrahimi 5303*62c56f98SSadaf Ebrahimirequires_gnutls 5304*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5305*62c56f98SSadaf Ebrahimirun_test "DER format: with a trailing random byte" \ 5306*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-der1b.crt \ 5307*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5308*62c56f98SSadaf Ebrahimi "$G_CLI localhost" \ 5309*62c56f98SSadaf Ebrahimi 0 \ 5310*62c56f98SSadaf Ebrahimi -c "Handshake was completed" \ 5311*62c56f98SSadaf Ebrahimi 5312*62c56f98SSadaf Ebrahimirequires_gnutls 5313*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5314*62c56f98SSadaf Ebrahimirun_test "DER format: with 2 trailing random bytes" \ 5315*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-der2.crt \ 5316*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5317*62c56f98SSadaf Ebrahimi "$G_CLI localhost" \ 5318*62c56f98SSadaf Ebrahimi 0 \ 5319*62c56f98SSadaf Ebrahimi -c "Handshake was completed" \ 5320*62c56f98SSadaf Ebrahimi 5321*62c56f98SSadaf Ebrahimirequires_gnutls 5322*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5323*62c56f98SSadaf Ebrahimirun_test "DER format: with 4 trailing random bytes" \ 5324*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-der4.crt \ 5325*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5326*62c56f98SSadaf Ebrahimi "$G_CLI localhost" \ 5327*62c56f98SSadaf Ebrahimi 0 \ 5328*62c56f98SSadaf Ebrahimi -c "Handshake was completed" \ 5329*62c56f98SSadaf Ebrahimi 5330*62c56f98SSadaf Ebrahimirequires_gnutls 5331*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5332*62c56f98SSadaf Ebrahimirun_test "DER format: with 8 trailing random bytes" \ 5333*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-der8.crt \ 5334*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5335*62c56f98SSadaf Ebrahimi "$G_CLI localhost" \ 5336*62c56f98SSadaf Ebrahimi 0 \ 5337*62c56f98SSadaf Ebrahimi -c "Handshake was completed" \ 5338*62c56f98SSadaf Ebrahimi 5339*62c56f98SSadaf Ebrahimirequires_gnutls 5340*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5341*62c56f98SSadaf Ebrahimirun_test "DER format: with 9 trailing random bytes" \ 5342*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-der9.crt \ 5343*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5344*62c56f98SSadaf Ebrahimi "$G_CLI localhost" \ 5345*62c56f98SSadaf Ebrahimi 0 \ 5346*62c56f98SSadaf Ebrahimi -c "Handshake was completed" \ 5347*62c56f98SSadaf Ebrahimi 5348*62c56f98SSadaf Ebrahimi# Tests for auth_mode, there are duplicated tests using ca callback for authentication 5349*62c56f98SSadaf Ebrahimi# When updating these tests, modify the matching authentication tests accordingly 5350*62c56f98SSadaf Ebrahimi 5351*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5352*62c56f98SSadaf Ebrahimirun_test "Authentication: server badcert, client required" \ 5353*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-badsign.crt \ 5354*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5355*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 auth_mode=required" \ 5356*62c56f98SSadaf Ebrahimi 1 \ 5357*62c56f98SSadaf Ebrahimi -c "x509_verify_cert() returned" \ 5358*62c56f98SSadaf Ebrahimi -c "! The certificate is not correctly signed by the trusted CA" \ 5359*62c56f98SSadaf Ebrahimi -c "! mbedtls_ssl_handshake returned" \ 5360*62c56f98SSadaf Ebrahimi -c "X509 - Certificate verification failed" 5361*62c56f98SSadaf Ebrahimi 5362*62c56f98SSadaf Ebrahimirun_test "Authentication: server badcert, client optional" \ 5363*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-badsign.crt \ 5364*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5365*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=1 auth_mode=optional" \ 5366*62c56f98SSadaf Ebrahimi 0 \ 5367*62c56f98SSadaf Ebrahimi -c "x509_verify_cert() returned" \ 5368*62c56f98SSadaf Ebrahimi -c "! The certificate is not correctly signed by the trusted CA" \ 5369*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 5370*62c56f98SSadaf Ebrahimi -C "X509 - Certificate verification failed" 5371*62c56f98SSadaf Ebrahimi 5372*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 5373*62c56f98SSadaf Ebrahimirun_test "Authentication: server goodcert, client optional, no trusted CA" \ 5374*62c56f98SSadaf Ebrahimi "$P_SRV" \ 5375*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 auth_mode=optional ca_file=none ca_path=none" \ 5376*62c56f98SSadaf Ebrahimi 0 \ 5377*62c56f98SSadaf Ebrahimi -c "x509_verify_cert() returned" \ 5378*62c56f98SSadaf Ebrahimi -c "! The certificate is not correctly signed by the trusted CA" \ 5379*62c56f98SSadaf Ebrahimi -c "! Certificate verification flags"\ 5380*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 5381*62c56f98SSadaf Ebrahimi -C "X509 - Certificate verification failed" \ 5382*62c56f98SSadaf Ebrahimi -C "SSL - No CA Chain is set, but required to operate" 5383*62c56f98SSadaf Ebrahimi 5384*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5385*62c56f98SSadaf Ebrahimirun_test "Authentication: server goodcert, client required, no trusted CA" \ 5386*62c56f98SSadaf Ebrahimi "$P_SRV" \ 5387*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 auth_mode=required ca_file=none ca_path=none" \ 5388*62c56f98SSadaf Ebrahimi 1 \ 5389*62c56f98SSadaf Ebrahimi -c "x509_verify_cert() returned" \ 5390*62c56f98SSadaf Ebrahimi -c "! The certificate is not correctly signed by the trusted CA" \ 5391*62c56f98SSadaf Ebrahimi -c "! Certificate verification flags"\ 5392*62c56f98SSadaf Ebrahimi -c "! mbedtls_ssl_handshake returned" \ 5393*62c56f98SSadaf Ebrahimi -c "SSL - No CA Chain is set, but required to operate" 5394*62c56f98SSadaf Ebrahimi 5395*62c56f98SSadaf Ebrahimi# The purpose of the next two tests is to test the client's behaviour when receiving a server 5396*62c56f98SSadaf Ebrahimi# certificate with an unsupported elliptic curve. This should usually not happen because 5397*62c56f98SSadaf Ebrahimi# the client informs the server about the supported curves - it does, though, in the 5398*62c56f98SSadaf Ebrahimi# corner case of a static ECDH suite, because the server doesn't check the curve on that 5399*62c56f98SSadaf Ebrahimi# occasion (to be fixed). If that bug's fixed, the test needs to be altered to use a 5400*62c56f98SSadaf Ebrahimi# different means to have the server ignoring the client's supported curve list. 5401*62c56f98SSadaf Ebrahimi 5402*62c56f98SSadaf Ebrahimirun_test "Authentication: server ECDH p256v1, client required, p256v1 unsupported" \ 5403*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 key_file=data_files/server5.key \ 5404*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.ku-ka.crt" \ 5405*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 auth_mode=required groups=secp521r1" \ 5406*62c56f98SSadaf Ebrahimi 1 \ 5407*62c56f98SSadaf Ebrahimi -c "bad certificate (EC key curve)"\ 5408*62c56f98SSadaf Ebrahimi -c "! Certificate verification flags"\ 5409*62c56f98SSadaf Ebrahimi -C "bad server certificate (ECDH curve)" # Expect failure at earlier verification stage 5410*62c56f98SSadaf Ebrahimi 5411*62c56f98SSadaf Ebrahimirun_test "Authentication: server ECDH p256v1, client optional, p256v1 unsupported" \ 5412*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 key_file=data_files/server5.key \ 5413*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.ku-ka.crt" \ 5414*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 auth_mode=optional groups=secp521r1" \ 5415*62c56f98SSadaf Ebrahimi 1 \ 5416*62c56f98SSadaf Ebrahimi -c "bad certificate (EC key curve)"\ 5417*62c56f98SSadaf Ebrahimi -c "! Certificate verification flags"\ 5418*62c56f98SSadaf Ebrahimi -c "bad server certificate (ECDH curve)" # Expect failure only at ECDH params check 5419*62c56f98SSadaf Ebrahimi 5420*62c56f98SSadaf Ebrahimirun_test "Authentication: server badcert, client none" \ 5421*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-badsign.crt \ 5422*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5423*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=1 auth_mode=none" \ 5424*62c56f98SSadaf Ebrahimi 0 \ 5425*62c56f98SSadaf Ebrahimi -C "x509_verify_cert() returned" \ 5426*62c56f98SSadaf Ebrahimi -C "! The certificate is not correctly signed by the trusted CA" \ 5427*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 5428*62c56f98SSadaf Ebrahimi -C "X509 - Certificate verification failed" 5429*62c56f98SSadaf Ebrahimi 5430*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 5431*62c56f98SSadaf Ebrahimirun_test "Authentication: client SHA256, server required" \ 5432*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=required" \ 5433*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ 5434*62c56f98SSadaf Ebrahimi key_file=data_files/server6.key \ 5435*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384" \ 5436*62c56f98SSadaf Ebrahimi 0 \ 5437*62c56f98SSadaf Ebrahimi -c "Supported Signature Algorithm found: 04 " \ 5438*62c56f98SSadaf Ebrahimi -c "Supported Signature Algorithm found: 05 " 5439*62c56f98SSadaf Ebrahimi 5440*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 5441*62c56f98SSadaf Ebrahimirun_test "Authentication: client SHA384, server required" \ 5442*62c56f98SSadaf Ebrahimi "$P_SRV auth_mode=required" \ 5443*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ 5444*62c56f98SSadaf Ebrahimi key_file=data_files/server6.key \ 5445*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256" \ 5446*62c56f98SSadaf Ebrahimi 0 \ 5447*62c56f98SSadaf Ebrahimi -c "Supported Signature Algorithm found: 04 " \ 5448*62c56f98SSadaf Ebrahimi -c "Supported Signature Algorithm found: 05 " 5449*62c56f98SSadaf Ebrahimi 5450*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5451*62c56f98SSadaf Ebrahimirun_test "Authentication: client has no cert, server required (TLS)" \ 5452*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=required" \ 5453*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=none \ 5454*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5455*62c56f98SSadaf Ebrahimi 1 \ 5456*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 5457*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5458*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5459*62c56f98SSadaf Ebrahimi -c "= write certificate$" \ 5460*62c56f98SSadaf Ebrahimi -C "skip write certificate$" \ 5461*62c56f98SSadaf Ebrahimi -S "x509_verify_cert() returned" \ 5462*62c56f98SSadaf Ebrahimi -s "peer has no certificate" \ 5463*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 5464*62c56f98SSadaf Ebrahimi -s "No client certification received from the client, but required by the authentication mode" 5465*62c56f98SSadaf Ebrahimi 5466*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5467*62c56f98SSadaf Ebrahimirun_test "Authentication: client badcert, server required" \ 5468*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=required" \ 5469*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ 5470*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5471*62c56f98SSadaf Ebrahimi 1 \ 5472*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 5473*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5474*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5475*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 5476*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 5477*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 5478*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 5479*62c56f98SSadaf Ebrahimi -s "! The certificate is not correctly signed by the trusted CA" \ 5480*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 5481*62c56f98SSadaf Ebrahimi -s "send alert level=2 message=48" \ 5482*62c56f98SSadaf Ebrahimi -s "X509 - Certificate verification failed" 5483*62c56f98SSadaf Ebrahimi# We don't check that the client receives the alert because it might 5484*62c56f98SSadaf Ebrahimi# detect that its write end of the connection is closed and abort 5485*62c56f98SSadaf Ebrahimi# before reading the alert message. 5486*62c56f98SSadaf Ebrahimi 5487*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5488*62c56f98SSadaf Ebrahimirun_test "Authentication: client cert self-signed and trusted, server required" \ 5489*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=required ca_file=data_files/server5-selfsigned.crt" \ 5490*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ 5491*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5492*62c56f98SSadaf Ebrahimi 0 \ 5493*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 5494*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5495*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5496*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 5497*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 5498*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 5499*62c56f98SSadaf Ebrahimi -S "x509_verify_cert() returned" \ 5500*62c56f98SSadaf Ebrahimi -S "! The certificate is not correctly signed" \ 5501*62c56f98SSadaf Ebrahimi -S "X509 - Certificate verification failed" 5502*62c56f98SSadaf Ebrahimi 5503*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5504*62c56f98SSadaf Ebrahimirun_test "Authentication: client cert not trusted, server required" \ 5505*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=required" \ 5506*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ 5507*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5508*62c56f98SSadaf Ebrahimi 1 \ 5509*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 5510*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5511*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5512*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 5513*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 5514*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 5515*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 5516*62c56f98SSadaf Ebrahimi -s "! The certificate is not correctly signed by the trusted CA" \ 5517*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 5518*62c56f98SSadaf Ebrahimi -s "X509 - Certificate verification failed" 5519*62c56f98SSadaf Ebrahimi 5520*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5521*62c56f98SSadaf Ebrahimirun_test "Authentication: client badcert, server optional" \ 5522*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional" \ 5523*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ 5524*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5525*62c56f98SSadaf Ebrahimi 0 \ 5526*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 5527*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5528*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5529*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 5530*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 5531*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 5532*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 5533*62c56f98SSadaf Ebrahimi -s "! The certificate is not correctly signed by the trusted CA" \ 5534*62c56f98SSadaf Ebrahimi -S "! mbedtls_ssl_handshake returned" \ 5535*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 5536*62c56f98SSadaf Ebrahimi -S "X509 - Certificate verification failed" 5537*62c56f98SSadaf Ebrahimi 5538*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5539*62c56f98SSadaf Ebrahimirun_test "Authentication: client badcert, server none" \ 5540*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=none" \ 5541*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ 5542*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5543*62c56f98SSadaf Ebrahimi 0 \ 5544*62c56f98SSadaf Ebrahimi -s "skip write certificate request" \ 5545*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5546*62c56f98SSadaf Ebrahimi -c "got no certificate request" \ 5547*62c56f98SSadaf Ebrahimi -c "skip write certificate" \ 5548*62c56f98SSadaf Ebrahimi -c "skip write certificate verify" \ 5549*62c56f98SSadaf Ebrahimi -s "skip parse certificate verify" \ 5550*62c56f98SSadaf Ebrahimi -S "x509_verify_cert() returned" \ 5551*62c56f98SSadaf Ebrahimi -S "! The certificate is not correctly signed by the trusted CA" \ 5552*62c56f98SSadaf Ebrahimi -S "! mbedtls_ssl_handshake returned" \ 5553*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 5554*62c56f98SSadaf Ebrahimi -S "X509 - Certificate verification failed" 5555*62c56f98SSadaf Ebrahimi 5556*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5557*62c56f98SSadaf Ebrahimirun_test "Authentication: client no cert, server optional" \ 5558*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional" \ 5559*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=none key_file=none" \ 5560*62c56f98SSadaf Ebrahimi 0 \ 5561*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 5562*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5563*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5564*62c56f98SSadaf Ebrahimi -C "skip write certificate$" \ 5565*62c56f98SSadaf Ebrahimi -C "got no certificate to send" \ 5566*62c56f98SSadaf Ebrahimi -c "skip write certificate verify" \ 5567*62c56f98SSadaf Ebrahimi -s "skip parse certificate verify" \ 5568*62c56f98SSadaf Ebrahimi -s "! Certificate was missing" \ 5569*62c56f98SSadaf Ebrahimi -S "! mbedtls_ssl_handshake returned" \ 5570*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 5571*62c56f98SSadaf Ebrahimi -S "X509 - Certificate verification failed" 5572*62c56f98SSadaf Ebrahimi 5573*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 5574*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5575*62c56f98SSadaf Ebrahimirun_test "Authentication: openssl client no cert, server optional" \ 5576*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional" \ 5577*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -no_middlebox" \ 5578*62c56f98SSadaf Ebrahimi 0 \ 5579*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 5580*62c56f98SSadaf Ebrahimi -s "skip parse certificate verify" \ 5581*62c56f98SSadaf Ebrahimi -s "! Certificate was missing" \ 5582*62c56f98SSadaf Ebrahimi -S "! mbedtls_ssl_handshake returned" \ 5583*62c56f98SSadaf Ebrahimi -S "X509 - Certificate verification failed" 5584*62c56f98SSadaf Ebrahimi 5585*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5586*62c56f98SSadaf Ebrahimirun_test "Authentication: client no cert, openssl server optional" \ 5587*62c56f98SSadaf Ebrahimi "$O_SRV -verify 10 -tls1_2" \ 5588*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=none key_file=none" \ 5589*62c56f98SSadaf Ebrahimi 0 \ 5590*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5591*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5592*62c56f98SSadaf Ebrahimi -C "skip write certificate$" \ 5593*62c56f98SSadaf Ebrahimi -c "skip write certificate verify" \ 5594*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" 5595*62c56f98SSadaf Ebrahimi 5596*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 5597*62c56f98SSadaf Ebrahimirun_test "Authentication: client no cert, openssl server required" \ 5598*62c56f98SSadaf Ebrahimi "$O_SRV -Verify 10 -tls1_2" \ 5599*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=none key_file=none" \ 5600*62c56f98SSadaf Ebrahimi 1 \ 5601*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5602*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5603*62c56f98SSadaf Ebrahimi -C "skip write certificate$" \ 5604*62c56f98SSadaf Ebrahimi -c "skip write certificate verify" \ 5605*62c56f98SSadaf Ebrahimi -c "! mbedtls_ssl_handshake returned" 5606*62c56f98SSadaf Ebrahimi 5607*62c56f98SSadaf Ebrahimi# This script assumes that MBEDTLS_X509_MAX_INTERMEDIATE_CA has its default 5608*62c56f98SSadaf Ebrahimi# value, defined here as MAX_IM_CA. Some test cases will be skipped if the 5609*62c56f98SSadaf Ebrahimi# library is configured with a different value. 5610*62c56f98SSadaf Ebrahimi 5611*62c56f98SSadaf EbrahimiMAX_IM_CA='8' 5612*62c56f98SSadaf Ebrahimi 5613*62c56f98SSadaf Ebrahimi# The tests for the max_int tests can pass with any number higher than MAX_IM_CA 5614*62c56f98SSadaf Ebrahimi# because only a chain of MAX_IM_CA length is tested. Equally, the max_int+1 5615*62c56f98SSadaf Ebrahimi# tests can pass with any number less than MAX_IM_CA. However, stricter preconditions 5616*62c56f98SSadaf Ebrahimi# are in place so that the semantics are consistent with the test description. 5617*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5618*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5619*62c56f98SSadaf Ebrahimirun_test "Authentication: server max_int chain, client default" \ 5620*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/dir-maxpath/c09.pem \ 5621*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/09.key" \ 5622*62c56f98SSadaf Ebrahimi "$P_CLI server_name=CA09 ca_file=data_files/dir-maxpath/00.crt" \ 5623*62c56f98SSadaf Ebrahimi 0 \ 5624*62c56f98SSadaf Ebrahimi -C "X509 - A fatal error occurred" 5625*62c56f98SSadaf Ebrahimi 5626*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5627*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5628*62c56f98SSadaf Ebrahimirun_test "Authentication: server max_int+1 chain, client default" \ 5629*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ 5630*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/10.key" \ 5631*62c56f98SSadaf Ebrahimi "$P_CLI server_name=CA10 ca_file=data_files/dir-maxpath/00.crt" \ 5632*62c56f98SSadaf Ebrahimi 1 \ 5633*62c56f98SSadaf Ebrahimi -c "X509 - A fatal error occurred" 5634*62c56f98SSadaf Ebrahimi 5635*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5636*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5637*62c56f98SSadaf Ebrahimirun_test "Authentication: server max_int+1 chain, client optional" \ 5638*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ 5639*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/10.key" \ 5640*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 server_name=CA10 ca_file=data_files/dir-maxpath/00.crt \ 5641*62c56f98SSadaf Ebrahimi auth_mode=optional" \ 5642*62c56f98SSadaf Ebrahimi 1 \ 5643*62c56f98SSadaf Ebrahimi -c "X509 - A fatal error occurred" 5644*62c56f98SSadaf Ebrahimi 5645*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5646*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5647*62c56f98SSadaf Ebrahimirun_test "Authentication: server max_int+1 chain, client none" \ 5648*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ 5649*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/10.key" \ 5650*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 server_name=CA10 ca_file=data_files/dir-maxpath/00.crt \ 5651*62c56f98SSadaf Ebrahimi auth_mode=none" \ 5652*62c56f98SSadaf Ebrahimi 0 \ 5653*62c56f98SSadaf Ebrahimi -C "X509 - A fatal error occurred" 5654*62c56f98SSadaf Ebrahimi 5655*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5656*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5657*62c56f98SSadaf Ebrahimirun_test "Authentication: client max_int+1 chain, server default" \ 5658*62c56f98SSadaf Ebrahimi "$P_SRV ca_file=data_files/dir-maxpath/00.crt" \ 5659*62c56f98SSadaf Ebrahimi "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ 5660*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/10.key" \ 5661*62c56f98SSadaf Ebrahimi 0 \ 5662*62c56f98SSadaf Ebrahimi -S "X509 - A fatal error occurred" 5663*62c56f98SSadaf Ebrahimi 5664*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5665*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5666*62c56f98SSadaf Ebrahimirun_test "Authentication: client max_int+1 chain, server optional" \ 5667*62c56f98SSadaf Ebrahimi "$P_SRV ca_file=data_files/dir-maxpath/00.crt auth_mode=optional" \ 5668*62c56f98SSadaf Ebrahimi "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ 5669*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/10.key" \ 5670*62c56f98SSadaf Ebrahimi 1 \ 5671*62c56f98SSadaf Ebrahimi -s "X509 - A fatal error occurred" 5672*62c56f98SSadaf Ebrahimi 5673*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5674*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5675*62c56f98SSadaf Ebrahimirun_test "Authentication: client max_int+1 chain, server required" \ 5676*62c56f98SSadaf Ebrahimi "$P_SRV ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ 5677*62c56f98SSadaf Ebrahimi "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ 5678*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/10.key" \ 5679*62c56f98SSadaf Ebrahimi 1 \ 5680*62c56f98SSadaf Ebrahimi -s "X509 - A fatal error occurred" 5681*62c56f98SSadaf Ebrahimi 5682*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5683*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5684*62c56f98SSadaf Ebrahimirun_test "Authentication: client max_int chain, server required" \ 5685*62c56f98SSadaf Ebrahimi "$P_SRV ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ 5686*62c56f98SSadaf Ebrahimi "$P_CLI crt_file=data_files/dir-maxpath/c09.pem \ 5687*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/09.key" \ 5688*62c56f98SSadaf Ebrahimi 0 \ 5689*62c56f98SSadaf Ebrahimi -S "X509 - A fatal error occurred" 5690*62c56f98SSadaf Ebrahimi 5691*62c56f98SSadaf Ebrahimi# Tests for CA list in CertificateRequest messages 5692*62c56f98SSadaf Ebrahimi 5693*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 5694*62c56f98SSadaf Ebrahimirun_test "Authentication: send CA list in CertificateRequest (default)" \ 5695*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=required" \ 5696*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 crt_file=data_files/server6.crt \ 5697*62c56f98SSadaf Ebrahimi key_file=data_files/server6.key" \ 5698*62c56f98SSadaf Ebrahimi 0 \ 5699*62c56f98SSadaf Ebrahimi -s "requested DN" 5700*62c56f98SSadaf Ebrahimi 5701*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 5702*62c56f98SSadaf Ebrahimirun_test "Authentication: do not send CA list in CertificateRequest" \ 5703*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=required cert_req_ca_list=0" \ 5704*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 crt_file=data_files/server6.crt \ 5705*62c56f98SSadaf Ebrahimi key_file=data_files/server6.key" \ 5706*62c56f98SSadaf Ebrahimi 0 \ 5707*62c56f98SSadaf Ebrahimi -S "requested DN" 5708*62c56f98SSadaf Ebrahimi 5709*62c56f98SSadaf Ebrahimirun_test "Authentication: send CA list in CertificateRequest, client self signed" \ 5710*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 auth_mode=required cert_req_ca_list=0" \ 5711*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ 5712*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5713*62c56f98SSadaf Ebrahimi 1 \ 5714*62c56f98SSadaf Ebrahimi -S "requested DN" \ 5715*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 5716*62c56f98SSadaf Ebrahimi -s "! The certificate is not correctly signed by the trusted CA" \ 5717*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 5718*62c56f98SSadaf Ebrahimi -c "! mbedtls_ssl_handshake returned" \ 5719*62c56f98SSadaf Ebrahimi -s "X509 - Certificate verification failed" 5720*62c56f98SSadaf Ebrahimi 5721*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 5722*62c56f98SSadaf Ebrahimirun_test "Authentication: send alt conf DN hints in CertificateRequest" \ 5723*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=2 \ 5724*62c56f98SSadaf Ebrahimi crt_file2=data_files/server1.crt \ 5725*62c56f98SSadaf Ebrahimi key_file2=data_files/server1.key" \ 5726*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 auth_mode=optional \ 5727*62c56f98SSadaf Ebrahimi crt_file=data_files/server6.crt \ 5728*62c56f98SSadaf Ebrahimi key_file=data_files/server6.key" \ 5729*62c56f98SSadaf Ebrahimi 0 \ 5730*62c56f98SSadaf Ebrahimi -c "DN hint: C=NL, O=PolarSSL, CN=PolarSSL Server 1" 5731*62c56f98SSadaf Ebrahimi 5732*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 5733*62c56f98SSadaf Ebrahimirun_test "Authentication: send alt conf DN hints in CertificateRequest (2)" \ 5734*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=2 \ 5735*62c56f98SSadaf Ebrahimi crt_file2=data_files/server2.crt \ 5736*62c56f98SSadaf Ebrahimi key_file2=data_files/server2.key" \ 5737*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 auth_mode=optional \ 5738*62c56f98SSadaf Ebrahimi crt_file=data_files/server6.crt \ 5739*62c56f98SSadaf Ebrahimi key_file=data_files/server6.key" \ 5740*62c56f98SSadaf Ebrahimi 0 \ 5741*62c56f98SSadaf Ebrahimi -c "DN hint: C=NL, O=PolarSSL, CN=localhost" 5742*62c56f98SSadaf Ebrahimi 5743*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 5744*62c56f98SSadaf Ebrahimirun_test "Authentication: send alt hs DN hints in CertificateRequest" \ 5745*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=3 \ 5746*62c56f98SSadaf Ebrahimi crt_file2=data_files/server1.crt \ 5747*62c56f98SSadaf Ebrahimi key_file2=data_files/server1.key" \ 5748*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 auth_mode=optional \ 5749*62c56f98SSadaf Ebrahimi crt_file=data_files/server6.crt \ 5750*62c56f98SSadaf Ebrahimi key_file=data_files/server6.key" \ 5751*62c56f98SSadaf Ebrahimi 0 \ 5752*62c56f98SSadaf Ebrahimi -c "DN hint: C=NL, O=PolarSSL, CN=PolarSSL Server 1" 5753*62c56f98SSadaf Ebrahimi 5754*62c56f98SSadaf Ebrahimi# Tests for auth_mode, using CA callback, these are duplicated from the authentication tests 5755*62c56f98SSadaf Ebrahimi# When updating these tests, modify the matching authentication tests accordingly 5756*62c56f98SSadaf Ebrahimi 5757*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5758*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: server badcert, client required" \ 5759*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-badsign.crt \ 5760*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5761*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 ca_callback=1 debug_level=3 auth_mode=required" \ 5762*62c56f98SSadaf Ebrahimi 1 \ 5763*62c56f98SSadaf Ebrahimi -c "use CA callback for X.509 CRT verification" \ 5764*62c56f98SSadaf Ebrahimi -c "x509_verify_cert() returned" \ 5765*62c56f98SSadaf Ebrahimi -c "! The certificate is not correctly signed by the trusted CA" \ 5766*62c56f98SSadaf Ebrahimi -c "! mbedtls_ssl_handshake returned" \ 5767*62c56f98SSadaf Ebrahimi -c "X509 - Certificate verification failed" 5768*62c56f98SSadaf Ebrahimi 5769*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5770*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: server badcert, client optional" \ 5771*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server5-badsign.crt \ 5772*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5773*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 ca_callback=1 debug_level=3 auth_mode=optional" \ 5774*62c56f98SSadaf Ebrahimi 0 \ 5775*62c56f98SSadaf Ebrahimi -c "use CA callback for X.509 CRT verification" \ 5776*62c56f98SSadaf Ebrahimi -c "x509_verify_cert() returned" \ 5777*62c56f98SSadaf Ebrahimi -c "! The certificate is not correctly signed by the trusted CA" \ 5778*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 5779*62c56f98SSadaf Ebrahimi -C "X509 - Certificate verification failed" 5780*62c56f98SSadaf Ebrahimi 5781*62c56f98SSadaf Ebrahimi# The purpose of the next two tests is to test the client's behaviour when receiving a server 5782*62c56f98SSadaf Ebrahimi# certificate with an unsupported elliptic curve. This should usually not happen because 5783*62c56f98SSadaf Ebrahimi# the client informs the server about the supported curves - it does, though, in the 5784*62c56f98SSadaf Ebrahimi# corner case of a static ECDH suite, because the server doesn't check the curve on that 5785*62c56f98SSadaf Ebrahimi# occasion (to be fixed). If that bug's fixed, the test needs to be altered to use a 5786*62c56f98SSadaf Ebrahimi# different means to have the server ignoring the client's supported curve list. 5787*62c56f98SSadaf Ebrahimi 5788*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5789*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: server ECDH p256v1, client required, p256v1 unsupported" \ 5790*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 key_file=data_files/server5.key \ 5791*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.ku-ka.crt" \ 5792*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 ca_callback=1 debug_level=3 auth_mode=required groups=secp521r1" \ 5793*62c56f98SSadaf Ebrahimi 1 \ 5794*62c56f98SSadaf Ebrahimi -c "use CA callback for X.509 CRT verification" \ 5795*62c56f98SSadaf Ebrahimi -c "bad certificate (EC key curve)" \ 5796*62c56f98SSadaf Ebrahimi -c "! Certificate verification flags" \ 5797*62c56f98SSadaf Ebrahimi -C "bad server certificate (ECDH curve)" # Expect failure at earlier verification stage 5798*62c56f98SSadaf Ebrahimi 5799*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5800*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: server ECDH p256v1, client optional, p256v1 unsupported" \ 5801*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 key_file=data_files/server5.key \ 5802*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.ku-ka.crt" \ 5803*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 ca_callback=1 debug_level=3 auth_mode=optional groups=secp521r1" \ 5804*62c56f98SSadaf Ebrahimi 1 \ 5805*62c56f98SSadaf Ebrahimi -c "use CA callback for X.509 CRT verification" \ 5806*62c56f98SSadaf Ebrahimi -c "bad certificate (EC key curve)"\ 5807*62c56f98SSadaf Ebrahimi -c "! Certificate verification flags"\ 5808*62c56f98SSadaf Ebrahimi -c "bad server certificate (ECDH curve)" # Expect failure only at ECDH params check 5809*62c56f98SSadaf Ebrahimi 5810*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5811*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 5812*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: client SHA256, server required" \ 5813*62c56f98SSadaf Ebrahimi "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ 5814*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ 5815*62c56f98SSadaf Ebrahimi key_file=data_files/server6.key \ 5816*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384" \ 5817*62c56f98SSadaf Ebrahimi 0 \ 5818*62c56f98SSadaf Ebrahimi -s "use CA callback for X.509 CRT verification" \ 5819*62c56f98SSadaf Ebrahimi -c "Supported Signature Algorithm found: 04 " \ 5820*62c56f98SSadaf Ebrahimi -c "Supported Signature Algorithm found: 05 " 5821*62c56f98SSadaf Ebrahimi 5822*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5823*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 5824*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: client SHA384, server required" \ 5825*62c56f98SSadaf Ebrahimi "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ 5826*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ 5827*62c56f98SSadaf Ebrahimi key_file=data_files/server6.key \ 5828*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256" \ 5829*62c56f98SSadaf Ebrahimi 0 \ 5830*62c56f98SSadaf Ebrahimi -s "use CA callback for X.509 CRT verification" \ 5831*62c56f98SSadaf Ebrahimi -c "Supported Signature Algorithm found: 04 " \ 5832*62c56f98SSadaf Ebrahimi -c "Supported Signature Algorithm found: 05 " 5833*62c56f98SSadaf Ebrahimi 5834*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5835*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: client badcert, server required" \ 5836*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 ca_callback=1 debug_level=3 auth_mode=required" \ 5837*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ 5838*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5839*62c56f98SSadaf Ebrahimi 1 \ 5840*62c56f98SSadaf Ebrahimi -s "use CA callback for X.509 CRT verification" \ 5841*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 5842*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5843*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5844*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 5845*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 5846*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 5847*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 5848*62c56f98SSadaf Ebrahimi -s "! The certificate is not correctly signed by the trusted CA" \ 5849*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 5850*62c56f98SSadaf Ebrahimi -s "send alert level=2 message=48" \ 5851*62c56f98SSadaf Ebrahimi -c "! mbedtls_ssl_handshake returned" \ 5852*62c56f98SSadaf Ebrahimi -s "X509 - Certificate verification failed" 5853*62c56f98SSadaf Ebrahimi# We don't check that the client receives the alert because it might 5854*62c56f98SSadaf Ebrahimi# detect that its write end of the connection is closed and abort 5855*62c56f98SSadaf Ebrahimi# before reading the alert message. 5856*62c56f98SSadaf Ebrahimi 5857*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5858*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: client cert not trusted, server required" \ 5859*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 ca_callback=1 debug_level=3 auth_mode=required" \ 5860*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ 5861*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5862*62c56f98SSadaf Ebrahimi 1 \ 5863*62c56f98SSadaf Ebrahimi -s "use CA callback for X.509 CRT verification" \ 5864*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 5865*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5866*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5867*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 5868*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 5869*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 5870*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 5871*62c56f98SSadaf Ebrahimi -s "! The certificate is not correctly signed by the trusted CA" \ 5872*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 5873*62c56f98SSadaf Ebrahimi -c "! mbedtls_ssl_handshake returned" \ 5874*62c56f98SSadaf Ebrahimi -s "X509 - Certificate verification failed" 5875*62c56f98SSadaf Ebrahimi 5876*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5877*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: client badcert, server optional" \ 5878*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 ca_callback=1 debug_level=3 auth_mode=optional" \ 5879*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ 5880*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 5881*62c56f98SSadaf Ebrahimi 0 \ 5882*62c56f98SSadaf Ebrahimi -s "use CA callback for X.509 CRT verification" \ 5883*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 5884*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 5885*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 5886*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 5887*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 5888*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 5889*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 5890*62c56f98SSadaf Ebrahimi -s "! The certificate is not correctly signed by the trusted CA" \ 5891*62c56f98SSadaf Ebrahimi -S "! mbedtls_ssl_handshake returned" \ 5892*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 5893*62c56f98SSadaf Ebrahimi -S "X509 - Certificate verification failed" 5894*62c56f98SSadaf Ebrahimi 5895*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5896*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5897*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5898*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: server max_int chain, client default" \ 5899*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/dir-maxpath/c09.pem \ 5900*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/09.key" \ 5901*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 ca_callback=1 debug_level=3 server_name=CA09 ca_file=data_files/dir-maxpath/00.crt" \ 5902*62c56f98SSadaf Ebrahimi 0 \ 5903*62c56f98SSadaf Ebrahimi -c "use CA callback for X.509 CRT verification" \ 5904*62c56f98SSadaf Ebrahimi -C "X509 - A fatal error occurred" 5905*62c56f98SSadaf Ebrahimi 5906*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5907*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5908*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5909*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: server max_int+1 chain, client default" \ 5910*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ 5911*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/10.key" \ 5912*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 debug_level=3 ca_callback=1 server_name=CA10 ca_file=data_files/dir-maxpath/00.crt" \ 5913*62c56f98SSadaf Ebrahimi 1 \ 5914*62c56f98SSadaf Ebrahimi -c "use CA callback for X.509 CRT verification" \ 5915*62c56f98SSadaf Ebrahimi -c "X509 - A fatal error occurred" 5916*62c56f98SSadaf Ebrahimi 5917*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5918*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5919*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5920*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: server max_int+1 chain, client optional" \ 5921*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ 5922*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/10.key" \ 5923*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 ca_callback=1 server_name=CA10 ca_file=data_files/dir-maxpath/00.crt \ 5924*62c56f98SSadaf Ebrahimi debug_level=3 auth_mode=optional" \ 5925*62c56f98SSadaf Ebrahimi 1 \ 5926*62c56f98SSadaf Ebrahimi -c "use CA callback for X.509 CRT verification" \ 5927*62c56f98SSadaf Ebrahimi -c "X509 - A fatal error occurred" 5928*62c56f98SSadaf Ebrahimi 5929*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5930*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5931*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5932*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: client max_int+1 chain, server optional" \ 5933*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=optional" \ 5934*62c56f98SSadaf Ebrahimi "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ 5935*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/10.key" \ 5936*62c56f98SSadaf Ebrahimi 1 \ 5937*62c56f98SSadaf Ebrahimi -s "use CA callback for X.509 CRT verification" \ 5938*62c56f98SSadaf Ebrahimi -s "X509 - A fatal error occurred" 5939*62c56f98SSadaf Ebrahimi 5940*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5941*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5942*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5943*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: client max_int+1 chain, server required" \ 5944*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ 5945*62c56f98SSadaf Ebrahimi "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ 5946*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/10.key" \ 5947*62c56f98SSadaf Ebrahimi 1 \ 5948*62c56f98SSadaf Ebrahimi -s "use CA callback for X.509 CRT verification" \ 5949*62c56f98SSadaf Ebrahimi -s "X509 - A fatal error occurred" 5950*62c56f98SSadaf Ebrahimi 5951*62c56f98SSadaf Ebrahimirequires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA 5952*62c56f98SSadaf Ebrahimirequires_full_size_output_buffer 5953*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK 5954*62c56f98SSadaf Ebrahimirun_test "Authentication, CA callback: client max_int chain, server required" \ 5955*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ 5956*62c56f98SSadaf Ebrahimi "$P_CLI crt_file=data_files/dir-maxpath/c09.pem \ 5957*62c56f98SSadaf Ebrahimi key_file=data_files/dir-maxpath/09.key" \ 5958*62c56f98SSadaf Ebrahimi 0 \ 5959*62c56f98SSadaf Ebrahimi -s "use CA callback for X.509 CRT verification" \ 5960*62c56f98SSadaf Ebrahimi -S "X509 - A fatal error occurred" 5961*62c56f98SSadaf Ebrahimi 5962*62c56f98SSadaf Ebrahimi# Tests for certificate selection based on SHA version 5963*62c56f98SSadaf Ebrahimi 5964*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 5965*62c56f98SSadaf Ebrahimirun_test "Certificate hash: client TLS 1.2 -> SHA-2" \ 5966*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 crt_file=data_files/server5.crt \ 5967*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key \ 5968*62c56f98SSadaf Ebrahimi crt_file2=data_files/server5-sha1.crt \ 5969*62c56f98SSadaf Ebrahimi key_file2=data_files/server5.key" \ 5970*62c56f98SSadaf Ebrahimi "$P_CLI" \ 5971*62c56f98SSadaf Ebrahimi 0 \ 5972*62c56f98SSadaf Ebrahimi -c "signed using.*ECDSA with SHA256" \ 5973*62c56f98SSadaf Ebrahimi -C "signed using.*ECDSA with SHA1" 5974*62c56f98SSadaf Ebrahimi 5975*62c56f98SSadaf Ebrahimi# tests for SNI 5976*62c56f98SSadaf Ebrahimi 5977*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 5978*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5979*62c56f98SSadaf Ebrahimirun_test "SNI: no SNI callback" \ 5980*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 \ 5981*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key" \ 5982*62c56f98SSadaf Ebrahimi "$P_CLI server_name=localhost" \ 5983*62c56f98SSadaf Ebrahimi 0 \ 5984*62c56f98SSadaf Ebrahimi -c "issuer name *: C=NL, O=PolarSSL, CN=Polarssl Test EC CA" \ 5985*62c56f98SSadaf Ebrahimi -c "subject name *: C=NL, O=PolarSSL, CN=localhost" 5986*62c56f98SSadaf Ebrahimi 5987*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 5988*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 5989*62c56f98SSadaf Ebrahimirun_test "SNI: matching cert 1" \ 5990*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 \ 5991*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 5992*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 5993*62c56f98SSadaf Ebrahimi "$P_CLI server_name=localhost" \ 5994*62c56f98SSadaf Ebrahimi 0 \ 5995*62c56f98SSadaf Ebrahimi -s "parse ServerName extension" \ 5996*62c56f98SSadaf Ebrahimi -c "issuer name *: C=NL, O=PolarSSL, CN=PolarSSL Test CA" \ 5997*62c56f98SSadaf Ebrahimi -c "subject name *: C=NL, O=PolarSSL, CN=localhost" 5998*62c56f98SSadaf Ebrahimi 5999*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 6000*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6001*62c56f98SSadaf Ebrahimirun_test "SNI: matching cert 2" \ 6002*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 \ 6003*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6004*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 6005*62c56f98SSadaf Ebrahimi "$P_CLI server_name=polarssl.example" \ 6006*62c56f98SSadaf Ebrahimi 0 \ 6007*62c56f98SSadaf Ebrahimi -s "parse ServerName extension" \ 6008*62c56f98SSadaf Ebrahimi -c "issuer name *: C=NL, O=PolarSSL, CN=PolarSSL Test CA" \ 6009*62c56f98SSadaf Ebrahimi -c "subject name *: C=NL, O=PolarSSL, CN=polarssl.example" 6010*62c56f98SSadaf Ebrahimi 6011*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 6012*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6013*62c56f98SSadaf Ebrahimirun_test "SNI: no matching cert" \ 6014*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 \ 6015*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6016*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 6017*62c56f98SSadaf Ebrahimi "$P_CLI server_name=nonesuch.example" \ 6018*62c56f98SSadaf Ebrahimi 1 \ 6019*62c56f98SSadaf Ebrahimi -s "parse ServerName extension" \ 6020*62c56f98SSadaf Ebrahimi -s "ssl_sni_wrapper() returned" \ 6021*62c56f98SSadaf Ebrahimi -s "mbedtls_ssl_handshake returned" \ 6022*62c56f98SSadaf Ebrahimi -c "mbedtls_ssl_handshake returned" \ 6023*62c56f98SSadaf Ebrahimi -c "SSL - A fatal alert message was received from our peer" 6024*62c56f98SSadaf Ebrahimi 6025*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6026*62c56f98SSadaf Ebrahimirun_test "SNI: client auth no override: optional" \ 6027*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional \ 6028*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6029*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-" \ 6030*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost" \ 6031*62c56f98SSadaf Ebrahimi 0 \ 6032*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 6033*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6034*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 6035*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 6036*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 6037*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" 6038*62c56f98SSadaf Ebrahimi 6039*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6040*62c56f98SSadaf Ebrahimirun_test "SNI: client auth override: none -> optional" \ 6041*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=none \ 6042*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6043*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,optional" \ 6044*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost" \ 6045*62c56f98SSadaf Ebrahimi 0 \ 6046*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 6047*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6048*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 6049*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 6050*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 6051*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" 6052*62c56f98SSadaf Ebrahimi 6053*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6054*62c56f98SSadaf Ebrahimirun_test "SNI: client auth override: optional -> none" \ 6055*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional \ 6056*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6057*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,none" \ 6058*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost" \ 6059*62c56f98SSadaf Ebrahimi 0 \ 6060*62c56f98SSadaf Ebrahimi -s "skip write certificate request" \ 6061*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6062*62c56f98SSadaf Ebrahimi -c "got no certificate request" \ 6063*62c56f98SSadaf Ebrahimi -c "skip write certificate" 6064*62c56f98SSadaf Ebrahimi 6065*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6066*62c56f98SSadaf Ebrahimirun_test "SNI: CA no override" \ 6067*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional \ 6068*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6069*62c56f98SSadaf Ebrahimi ca_file=data_files/test-ca.crt \ 6070*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,required" \ 6071*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost \ 6072*62c56f98SSadaf Ebrahimi crt_file=data_files/server6.crt key_file=data_files/server6.key" \ 6073*62c56f98SSadaf Ebrahimi 1 \ 6074*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 6075*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6076*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 6077*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 6078*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 6079*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 6080*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 6081*62c56f98SSadaf Ebrahimi -s "! The certificate is not correctly signed by the trusted CA" \ 6082*62c56f98SSadaf Ebrahimi -S "The certificate has been revoked (is on a CRL)" 6083*62c56f98SSadaf Ebrahimi 6084*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6085*62c56f98SSadaf Ebrahimirun_test "SNI: CA override" \ 6086*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional \ 6087*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6088*62c56f98SSadaf Ebrahimi ca_file=data_files/test-ca.crt \ 6089*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,data_files/test-ca2.crt,-,required" \ 6090*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost \ 6091*62c56f98SSadaf Ebrahimi crt_file=data_files/server6.crt key_file=data_files/server6.key" \ 6092*62c56f98SSadaf Ebrahimi 0 \ 6093*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 6094*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6095*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 6096*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 6097*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 6098*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 6099*62c56f98SSadaf Ebrahimi -S "x509_verify_cert() returned" \ 6100*62c56f98SSadaf Ebrahimi -S "! The certificate is not correctly signed by the trusted CA" \ 6101*62c56f98SSadaf Ebrahimi -S "The certificate has been revoked (is on a CRL)" 6102*62c56f98SSadaf Ebrahimi 6103*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6104*62c56f98SSadaf Ebrahimirun_test "SNI: CA override with CRL" \ 6105*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional \ 6106*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6107*62c56f98SSadaf Ebrahimi ca_file=data_files/test-ca.crt \ 6108*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,data_files/test-ca2.crt,data_files/crl-ec-sha256.pem,required" \ 6109*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost \ 6110*62c56f98SSadaf Ebrahimi crt_file=data_files/server6.crt key_file=data_files/server6.key" \ 6111*62c56f98SSadaf Ebrahimi 1 \ 6112*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 6113*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6114*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 6115*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 6116*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 6117*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 6118*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 6119*62c56f98SSadaf Ebrahimi -S "! The certificate is not correctly signed by the trusted CA" \ 6120*62c56f98SSadaf Ebrahimi -s "The certificate has been revoked (is on a CRL)" 6121*62c56f98SSadaf Ebrahimi 6122*62c56f98SSadaf Ebrahimi# Tests for SNI and DTLS 6123*62c56f98SSadaf Ebrahimi 6124*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 6125*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6126*62c56f98SSadaf Ebrahimirun_test "SNI: DTLS, no SNI callback" \ 6127*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 \ 6128*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key" \ 6129*62c56f98SSadaf Ebrahimi "$P_CLI server_name=localhost dtls=1" \ 6130*62c56f98SSadaf Ebrahimi 0 \ 6131*62c56f98SSadaf Ebrahimi -c "issuer name *: C=NL, O=PolarSSL, CN=Polarssl Test EC CA" \ 6132*62c56f98SSadaf Ebrahimi -c "subject name *: C=NL, O=PolarSSL, CN=localhost" 6133*62c56f98SSadaf Ebrahimi 6134*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 6135*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6136*62c56f98SSadaf Ebrahimirun_test "SNI: DTLS, matching cert 1" \ 6137*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 \ 6138*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6139*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 6140*62c56f98SSadaf Ebrahimi "$P_CLI server_name=localhost dtls=1" \ 6141*62c56f98SSadaf Ebrahimi 0 \ 6142*62c56f98SSadaf Ebrahimi -s "parse ServerName extension" \ 6143*62c56f98SSadaf Ebrahimi -c "issuer name *: C=NL, O=PolarSSL, CN=PolarSSL Test CA" \ 6144*62c56f98SSadaf Ebrahimi -c "subject name *: C=NL, O=PolarSSL, CN=localhost" 6145*62c56f98SSadaf Ebrahimi 6146*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 6147*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6148*62c56f98SSadaf Ebrahimirun_test "SNI: DTLS, matching cert 2" \ 6149*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 \ 6150*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6151*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 6152*62c56f98SSadaf Ebrahimi "$P_CLI server_name=polarssl.example dtls=1" \ 6153*62c56f98SSadaf Ebrahimi 0 \ 6154*62c56f98SSadaf Ebrahimi -s "parse ServerName extension" \ 6155*62c56f98SSadaf Ebrahimi -c "issuer name *: C=NL, O=PolarSSL, CN=PolarSSL Test CA" \ 6156*62c56f98SSadaf Ebrahimi -c "subject name *: C=NL, O=PolarSSL, CN=polarssl.example" 6157*62c56f98SSadaf Ebrahimi 6158*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6159*62c56f98SSadaf Ebrahimirun_test "SNI: DTLS, no matching cert" \ 6160*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 \ 6161*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6162*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 6163*62c56f98SSadaf Ebrahimi "$P_CLI server_name=nonesuch.example dtls=1" \ 6164*62c56f98SSadaf Ebrahimi 1 \ 6165*62c56f98SSadaf Ebrahimi -s "parse ServerName extension" \ 6166*62c56f98SSadaf Ebrahimi -s "ssl_sni_wrapper() returned" \ 6167*62c56f98SSadaf Ebrahimi -s "mbedtls_ssl_handshake returned" \ 6168*62c56f98SSadaf Ebrahimi -c "mbedtls_ssl_handshake returned" \ 6169*62c56f98SSadaf Ebrahimi -c "SSL - A fatal alert message was received from our peer" 6170*62c56f98SSadaf Ebrahimi 6171*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6172*62c56f98SSadaf Ebrahimirun_test "SNI: DTLS, client auth no override: optional" \ 6173*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional dtls=1 \ 6174*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6175*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-" \ 6176*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost dtls=1" \ 6177*62c56f98SSadaf Ebrahimi 0 \ 6178*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 6179*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6180*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 6181*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 6182*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 6183*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" 6184*62c56f98SSadaf Ebrahimi 6185*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6186*62c56f98SSadaf Ebrahimirun_test "SNI: DTLS, client auth override: none -> optional" \ 6187*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=none dtls=1 \ 6188*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6189*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,optional" \ 6190*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost dtls=1" \ 6191*62c56f98SSadaf Ebrahimi 0 \ 6192*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 6193*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6194*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 6195*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 6196*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 6197*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" 6198*62c56f98SSadaf Ebrahimi 6199*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6200*62c56f98SSadaf Ebrahimirun_test "SNI: DTLS, client auth override: optional -> none" \ 6201*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional dtls=1 \ 6202*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6203*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,none" \ 6204*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost dtls=1" \ 6205*62c56f98SSadaf Ebrahimi 0 \ 6206*62c56f98SSadaf Ebrahimi -s "skip write certificate request" \ 6207*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6208*62c56f98SSadaf Ebrahimi -c "got no certificate request" \ 6209*62c56f98SSadaf Ebrahimi -c "skip write certificate" \ 6210*62c56f98SSadaf Ebrahimi -c "skip write certificate verify" \ 6211*62c56f98SSadaf Ebrahimi -s "skip parse certificate verify" 6212*62c56f98SSadaf Ebrahimi 6213*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6214*62c56f98SSadaf Ebrahimirun_test "SNI: DTLS, CA no override" \ 6215*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional dtls=1 \ 6216*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6217*62c56f98SSadaf Ebrahimi ca_file=data_files/test-ca.crt \ 6218*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,required" \ 6219*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost dtls=1 \ 6220*62c56f98SSadaf Ebrahimi crt_file=data_files/server6.crt key_file=data_files/server6.key" \ 6221*62c56f98SSadaf Ebrahimi 1 \ 6222*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 6223*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6224*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 6225*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 6226*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 6227*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 6228*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 6229*62c56f98SSadaf Ebrahimi -s "! The certificate is not correctly signed by the trusted CA" \ 6230*62c56f98SSadaf Ebrahimi -S "The certificate has been revoked (is on a CRL)" 6231*62c56f98SSadaf Ebrahimi 6232*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6233*62c56f98SSadaf Ebrahimirun_test "SNI: DTLS, CA override" \ 6234*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional dtls=1 \ 6235*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 6236*62c56f98SSadaf Ebrahimi ca_file=data_files/test-ca.crt \ 6237*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,data_files/test-ca2.crt,-,required" \ 6238*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost dtls=1 \ 6239*62c56f98SSadaf Ebrahimi crt_file=data_files/server6.crt key_file=data_files/server6.key" \ 6240*62c56f98SSadaf Ebrahimi 0 \ 6241*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 6242*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6243*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 6244*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 6245*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 6246*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 6247*62c56f98SSadaf Ebrahimi -S "x509_verify_cert() returned" \ 6248*62c56f98SSadaf Ebrahimi -S "! The certificate is not correctly signed by the trusted CA" \ 6249*62c56f98SSadaf Ebrahimi -S "The certificate has been revoked (is on a CRL)" 6250*62c56f98SSadaf Ebrahimi 6251*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6252*62c56f98SSadaf Ebrahimirun_test "SNI: DTLS, CA override with CRL" \ 6253*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 auth_mode=optional \ 6254*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key dtls=1 \ 6255*62c56f98SSadaf Ebrahimi ca_file=data_files/test-ca.crt \ 6256*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,data_files/test-ca2.crt,data_files/crl-ec-sha256.pem,required" \ 6257*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 server_name=localhost dtls=1 \ 6258*62c56f98SSadaf Ebrahimi crt_file=data_files/server6.crt key_file=data_files/server6.key" \ 6259*62c56f98SSadaf Ebrahimi 1 \ 6260*62c56f98SSadaf Ebrahimi -S "skip write certificate request" \ 6261*62c56f98SSadaf Ebrahimi -C "skip parse certificate request" \ 6262*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 6263*62c56f98SSadaf Ebrahimi -C "skip write certificate" \ 6264*62c56f98SSadaf Ebrahimi -C "skip write certificate verify" \ 6265*62c56f98SSadaf Ebrahimi -S "skip parse certificate verify" \ 6266*62c56f98SSadaf Ebrahimi -s "x509_verify_cert() returned" \ 6267*62c56f98SSadaf Ebrahimi -S "! The certificate is not correctly signed by the trusted CA" \ 6268*62c56f98SSadaf Ebrahimi -s "The certificate has been revoked (is on a CRL)" 6269*62c56f98SSadaf Ebrahimi 6270*62c56f98SSadaf Ebrahimi# Tests for non-blocking I/O: exercise a variety of handshake flows 6271*62c56f98SSadaf Ebrahimi 6272*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6273*62c56f98SSadaf Ebrahimirun_test "Non-blocking I/O: basic handshake" \ 6274*62c56f98SSadaf Ebrahimi "$P_SRV nbio=2 tickets=0 auth_mode=none" \ 6275*62c56f98SSadaf Ebrahimi "$P_CLI nbio=2 tickets=0" \ 6276*62c56f98SSadaf Ebrahimi 0 \ 6277*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6278*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6279*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6280*62c56f98SSadaf Ebrahimi 6281*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6282*62c56f98SSadaf Ebrahimirun_test "Non-blocking I/O: client auth" \ 6283*62c56f98SSadaf Ebrahimi "$P_SRV nbio=2 tickets=0 auth_mode=required" \ 6284*62c56f98SSadaf Ebrahimi "$P_CLI nbio=2 tickets=0" \ 6285*62c56f98SSadaf Ebrahimi 0 \ 6286*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6287*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6288*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6289*62c56f98SSadaf Ebrahimi 6290*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6291*62c56f98SSadaf Ebrahimirun_test "Non-blocking I/O: ticket" \ 6292*62c56f98SSadaf Ebrahimi "$P_SRV nbio=2 tickets=1 auth_mode=none" \ 6293*62c56f98SSadaf Ebrahimi "$P_CLI nbio=2 tickets=1" \ 6294*62c56f98SSadaf Ebrahimi 0 \ 6295*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6296*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6297*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6298*62c56f98SSadaf Ebrahimi 6299*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6300*62c56f98SSadaf Ebrahimirun_test "Non-blocking I/O: ticket + client auth" \ 6301*62c56f98SSadaf Ebrahimi "$P_SRV nbio=2 tickets=1 auth_mode=required" \ 6302*62c56f98SSadaf Ebrahimi "$P_CLI nbio=2 tickets=1" \ 6303*62c56f98SSadaf Ebrahimi 0 \ 6304*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6305*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6306*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6307*62c56f98SSadaf Ebrahimi 6308*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 6309*62c56f98SSadaf Ebrahimirun_test "Non-blocking I/O: TLS 1.2 + ticket + client auth + resume" \ 6310*62c56f98SSadaf Ebrahimi "$P_SRV nbio=2 tickets=1 auth_mode=required" \ 6311*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 nbio=2 tickets=1 reconnect=1" \ 6312*62c56f98SSadaf Ebrahimi 0 \ 6313*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6314*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6315*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6316*62c56f98SSadaf Ebrahimi 6317*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 6318*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6319*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 6320*62c56f98SSadaf Ebrahimirun_test "Non-blocking I/O: TLS 1.3 + ticket + client auth + resume" \ 6321*62c56f98SSadaf Ebrahimi "$P_SRV nbio=2 tickets=1 auth_mode=required" \ 6322*62c56f98SSadaf Ebrahimi "$P_CLI nbio=2 tickets=1 reconnect=1" \ 6323*62c56f98SSadaf Ebrahimi 0 \ 6324*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6325*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6326*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6327*62c56f98SSadaf Ebrahimi 6328*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 6329*62c56f98SSadaf Ebrahimirun_test "Non-blocking I/O: TLS 1.2 + ticket + resume" \ 6330*62c56f98SSadaf Ebrahimi "$P_SRV nbio=2 tickets=1 auth_mode=none" \ 6331*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 nbio=2 tickets=1 reconnect=1" \ 6332*62c56f98SSadaf Ebrahimi 0 \ 6333*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6334*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6335*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6336*62c56f98SSadaf Ebrahimi 6337*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 6338*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6339*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 6340*62c56f98SSadaf Ebrahimirun_test "Non-blocking I/O: TLS 1.3 + ticket + resume" \ 6341*62c56f98SSadaf Ebrahimi "$P_SRV nbio=2 tickets=1 auth_mode=none" \ 6342*62c56f98SSadaf Ebrahimi "$P_CLI nbio=2 tickets=1 reconnect=1" \ 6343*62c56f98SSadaf Ebrahimi 0 \ 6344*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6345*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6346*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6347*62c56f98SSadaf Ebrahimi 6348*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 6349*62c56f98SSadaf Ebrahimirun_test "Non-blocking I/O: session-id resume" \ 6350*62c56f98SSadaf Ebrahimi "$P_SRV nbio=2 tickets=0 auth_mode=none" \ 6351*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 nbio=2 tickets=0 reconnect=1" \ 6352*62c56f98SSadaf Ebrahimi 0 \ 6353*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6354*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6355*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6356*62c56f98SSadaf Ebrahimi 6357*62c56f98SSadaf Ebrahimi# Tests for event-driven I/O: exercise a variety of handshake flows 6358*62c56f98SSadaf Ebrahimi 6359*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6360*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O: basic handshake" \ 6361*62c56f98SSadaf Ebrahimi "$P_SRV event=1 tickets=0 auth_mode=none" \ 6362*62c56f98SSadaf Ebrahimi "$P_CLI event=1 tickets=0" \ 6363*62c56f98SSadaf Ebrahimi 0 \ 6364*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6365*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6366*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6367*62c56f98SSadaf Ebrahimi 6368*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6369*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O: client auth" \ 6370*62c56f98SSadaf Ebrahimi "$P_SRV event=1 tickets=0 auth_mode=required" \ 6371*62c56f98SSadaf Ebrahimi "$P_CLI event=1 tickets=0" \ 6372*62c56f98SSadaf Ebrahimi 0 \ 6373*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6374*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6375*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6376*62c56f98SSadaf Ebrahimi 6377*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6378*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O: ticket" \ 6379*62c56f98SSadaf Ebrahimi "$P_SRV event=1 tickets=1 auth_mode=none" \ 6380*62c56f98SSadaf Ebrahimi "$P_CLI event=1 tickets=1" \ 6381*62c56f98SSadaf Ebrahimi 0 \ 6382*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6383*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6384*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6385*62c56f98SSadaf Ebrahimi 6386*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6387*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O: ticket + client auth" \ 6388*62c56f98SSadaf Ebrahimi "$P_SRV event=1 tickets=1 auth_mode=required" \ 6389*62c56f98SSadaf Ebrahimi "$P_CLI event=1 tickets=1" \ 6390*62c56f98SSadaf Ebrahimi 0 \ 6391*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6392*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6393*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6394*62c56f98SSadaf Ebrahimi 6395*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 6396*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O: TLS 1.2 + ticket + client auth + resume" \ 6397*62c56f98SSadaf Ebrahimi "$P_SRV event=1 tickets=1 auth_mode=required" \ 6398*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 event=1 tickets=1 reconnect=1" \ 6399*62c56f98SSadaf Ebrahimi 0 \ 6400*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6401*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6402*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6403*62c56f98SSadaf Ebrahimi 6404*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 6405*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6406*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 6407*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O: TLS 1.3 + ticket + client auth + resume" \ 6408*62c56f98SSadaf Ebrahimi "$P_SRV event=1 tickets=1 auth_mode=required" \ 6409*62c56f98SSadaf Ebrahimi "$P_CLI event=1 tickets=1 reconnect=1" \ 6410*62c56f98SSadaf Ebrahimi 0 \ 6411*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6412*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6413*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6414*62c56f98SSadaf Ebrahimi 6415*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 6416*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O: TLS 1.2 + ticket + resume" \ 6417*62c56f98SSadaf Ebrahimi "$P_SRV event=1 tickets=1 auth_mode=none" \ 6418*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 event=1 tickets=1 reconnect=1" \ 6419*62c56f98SSadaf Ebrahimi 0 \ 6420*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6421*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6422*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6423*62c56f98SSadaf Ebrahimi 6424*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 6425*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6426*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 6427*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O: TLS 1.3 + ticket + resume" \ 6428*62c56f98SSadaf Ebrahimi "$P_SRV event=1 tickets=1 auth_mode=none" \ 6429*62c56f98SSadaf Ebrahimi "$P_CLI event=1 tickets=1 reconnect=1" \ 6430*62c56f98SSadaf Ebrahimi 0 \ 6431*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6432*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6433*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6434*62c56f98SSadaf Ebrahimi 6435*62c56f98SSadaf Ebrahimirequires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT 6436*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O: session-id resume" \ 6437*62c56f98SSadaf Ebrahimi "$P_SRV event=1 tickets=0 auth_mode=none" \ 6438*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 event=1 tickets=0 reconnect=1" \ 6439*62c56f98SSadaf Ebrahimi 0 \ 6440*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6441*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6442*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6443*62c56f98SSadaf Ebrahimi 6444*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6445*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O, DTLS: basic handshake" \ 6446*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 event=1 tickets=0 auth_mode=none" \ 6447*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 event=1 tickets=0" \ 6448*62c56f98SSadaf Ebrahimi 0 \ 6449*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6450*62c56f98SSadaf Ebrahimi 6451*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6452*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O, DTLS: client auth" \ 6453*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 event=1 tickets=0 auth_mode=required" \ 6454*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 event=1 tickets=0" \ 6455*62c56f98SSadaf Ebrahimi 0 \ 6456*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6457*62c56f98SSadaf Ebrahimi 6458*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6459*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O, DTLS: ticket" \ 6460*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 event=1 tickets=1 auth_mode=none" \ 6461*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 event=1 tickets=1" \ 6462*62c56f98SSadaf Ebrahimi 0 \ 6463*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6464*62c56f98SSadaf Ebrahimi 6465*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6466*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O, DTLS: ticket + client auth" \ 6467*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 event=1 tickets=1 auth_mode=required" \ 6468*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 event=1 tickets=1" \ 6469*62c56f98SSadaf Ebrahimi 0 \ 6470*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6471*62c56f98SSadaf Ebrahimi 6472*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6473*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O, DTLS: ticket + client auth + resume" \ 6474*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 event=1 tickets=1 auth_mode=required" \ 6475*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 event=1 tickets=1 reconnect=1 skip_close_notify=1" \ 6476*62c56f98SSadaf Ebrahimi 0 \ 6477*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6478*62c56f98SSadaf Ebrahimi 6479*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6480*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O, DTLS: ticket + resume" \ 6481*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 event=1 tickets=1 auth_mode=none" \ 6482*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 event=1 tickets=1 reconnect=1 skip_close_notify=1" \ 6483*62c56f98SSadaf Ebrahimi 0 \ 6484*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6485*62c56f98SSadaf Ebrahimi 6486*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6487*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O, DTLS: session-id resume" \ 6488*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 event=1 tickets=0 auth_mode=none" \ 6489*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 event=1 tickets=0 reconnect=1 skip_close_notify=1" \ 6490*62c56f98SSadaf Ebrahimi 0 \ 6491*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6492*62c56f98SSadaf Ebrahimi 6493*62c56f98SSadaf Ebrahimi# This test demonstrates the need for the mbedtls_ssl_check_pending function. 6494*62c56f98SSadaf Ebrahimi# During session resumption, the client will send its ApplicationData record 6495*62c56f98SSadaf Ebrahimi# within the same datagram as the Finished messages. In this situation, the 6496*62c56f98SSadaf Ebrahimi# server MUST NOT idle on the underlying transport after handshake completion, 6497*62c56f98SSadaf Ebrahimi# because the ApplicationData request has already been queued internally. 6498*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6499*62c56f98SSadaf Ebrahimirun_test "Event-driven I/O, DTLS: session-id resume, UDP packing" \ 6500*62c56f98SSadaf Ebrahimi -p "$P_PXY pack=50" \ 6501*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 event=1 tickets=0 auth_mode=required" \ 6502*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 event=1 tickets=0 reconnect=1 skip_close_notify=1" \ 6503*62c56f98SSadaf Ebrahimi 0 \ 6504*62c56f98SSadaf Ebrahimi -c "Read from server: .* bytes read" 6505*62c56f98SSadaf Ebrahimi 6506*62c56f98SSadaf Ebrahimi# Tests for version negotiation 6507*62c56f98SSadaf Ebrahimi 6508*62c56f98SSadaf Ebrahimirun_test "Version check: all -> 1.2" \ 6509*62c56f98SSadaf Ebrahimi "$P_SRV" \ 6510*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12" \ 6511*62c56f98SSadaf Ebrahimi 0 \ 6512*62c56f98SSadaf Ebrahimi -S "mbedtls_ssl_handshake returned" \ 6513*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 6514*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.2" \ 6515*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.2" 6516*62c56f98SSadaf Ebrahimi 6517*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6518*62c56f98SSadaf Ebrahimirun_test "Not supported version check: cli TLS 1.0" \ 6519*62c56f98SSadaf Ebrahimi "$P_SRV" \ 6520*62c56f98SSadaf Ebrahimi "$G_CLI localhost --priority=NORMAL:-VERS-ALL:+VERS-TLS1.0" \ 6521*62c56f98SSadaf Ebrahimi 1 \ 6522*62c56f98SSadaf Ebrahimi -s "Handshake protocol not within min/max boundaries" \ 6523*62c56f98SSadaf Ebrahimi -c "Error in protocol version" \ 6524*62c56f98SSadaf Ebrahimi -S "Protocol is TLSv1.0" \ 6525*62c56f98SSadaf Ebrahimi -C "Handshake was completed" 6526*62c56f98SSadaf Ebrahimi 6527*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6528*62c56f98SSadaf Ebrahimirun_test "Not supported version check: cli TLS 1.1" \ 6529*62c56f98SSadaf Ebrahimi "$P_SRV" \ 6530*62c56f98SSadaf Ebrahimi "$G_CLI localhost --priority=NORMAL:-VERS-ALL:+VERS-TLS1.1" \ 6531*62c56f98SSadaf Ebrahimi 1 \ 6532*62c56f98SSadaf Ebrahimi -s "Handshake protocol not within min/max boundaries" \ 6533*62c56f98SSadaf Ebrahimi -c "Error in protocol version" \ 6534*62c56f98SSadaf Ebrahimi -S "Protocol is TLSv1.1" \ 6535*62c56f98SSadaf Ebrahimi -C "Handshake was completed" 6536*62c56f98SSadaf Ebrahimi 6537*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6538*62c56f98SSadaf Ebrahimirun_test "Not supported version check: srv max TLS 1.0" \ 6539*62c56f98SSadaf Ebrahimi "$G_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0" \ 6540*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6541*62c56f98SSadaf Ebrahimi 1 \ 6542*62c56f98SSadaf Ebrahimi -s "Error in protocol version" \ 6543*62c56f98SSadaf Ebrahimi -c "Handshake protocol not within min/max boundaries" \ 6544*62c56f98SSadaf Ebrahimi -S "Version: TLS1.0" \ 6545*62c56f98SSadaf Ebrahimi -C "Protocol is TLSv1.0" 6546*62c56f98SSadaf Ebrahimi 6547*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6548*62c56f98SSadaf Ebrahimirun_test "Not supported version check: srv max TLS 1.1" \ 6549*62c56f98SSadaf Ebrahimi "$G_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1" \ 6550*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6551*62c56f98SSadaf Ebrahimi 1 \ 6552*62c56f98SSadaf Ebrahimi -s "Error in protocol version" \ 6553*62c56f98SSadaf Ebrahimi -c "Handshake protocol not within min/max boundaries" \ 6554*62c56f98SSadaf Ebrahimi -S "Version: TLS1.1" \ 6555*62c56f98SSadaf Ebrahimi -C "Protocol is TLSv1.1" 6556*62c56f98SSadaf Ebrahimi 6557*62c56f98SSadaf Ebrahimi# Tests for ALPN extension 6558*62c56f98SSadaf Ebrahimi 6559*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6560*62c56f98SSadaf Ebrahimirun_test "ALPN: none" \ 6561*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 6562*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 6563*62c56f98SSadaf Ebrahimi 0 \ 6564*62c56f98SSadaf Ebrahimi -C "client hello, adding alpn extension" \ 6565*62c56f98SSadaf Ebrahimi -S "found alpn extension" \ 6566*62c56f98SSadaf Ebrahimi -C "got an alert message, type: \\[2:120]" \ 6567*62c56f98SSadaf Ebrahimi -S "server side, adding alpn extension" \ 6568*62c56f98SSadaf Ebrahimi -C "found alpn extension " \ 6569*62c56f98SSadaf Ebrahimi -C "Application Layer Protocol is" \ 6570*62c56f98SSadaf Ebrahimi -S "Application Layer Protocol is" 6571*62c56f98SSadaf Ebrahimi 6572*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6573*62c56f98SSadaf Ebrahimirun_test "ALPN: client only" \ 6574*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 6575*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 alpn=abc,1234" \ 6576*62c56f98SSadaf Ebrahimi 0 \ 6577*62c56f98SSadaf Ebrahimi -c "client hello, adding alpn extension" \ 6578*62c56f98SSadaf Ebrahimi -s "found alpn extension" \ 6579*62c56f98SSadaf Ebrahimi -C "got an alert message, type: \\[2:120]" \ 6580*62c56f98SSadaf Ebrahimi -S "server side, adding alpn extension" \ 6581*62c56f98SSadaf Ebrahimi -C "found alpn extension " \ 6582*62c56f98SSadaf Ebrahimi -c "Application Layer Protocol is (none)" \ 6583*62c56f98SSadaf Ebrahimi -S "Application Layer Protocol is" 6584*62c56f98SSadaf Ebrahimi 6585*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6586*62c56f98SSadaf Ebrahimirun_test "ALPN: server only" \ 6587*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 alpn=abc,1234" \ 6588*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 6589*62c56f98SSadaf Ebrahimi 0 \ 6590*62c56f98SSadaf Ebrahimi -C "client hello, adding alpn extension" \ 6591*62c56f98SSadaf Ebrahimi -S "found alpn extension" \ 6592*62c56f98SSadaf Ebrahimi -C "got an alert message, type: \\[2:120]" \ 6593*62c56f98SSadaf Ebrahimi -S "server side, adding alpn extension" \ 6594*62c56f98SSadaf Ebrahimi -C "found alpn extension " \ 6595*62c56f98SSadaf Ebrahimi -C "Application Layer Protocol is" \ 6596*62c56f98SSadaf Ebrahimi -s "Application Layer Protocol is (none)" 6597*62c56f98SSadaf Ebrahimi 6598*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6599*62c56f98SSadaf Ebrahimirun_test "ALPN: both, common cli1-srv1" \ 6600*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 alpn=abc,1234" \ 6601*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 alpn=abc,1234" \ 6602*62c56f98SSadaf Ebrahimi 0 \ 6603*62c56f98SSadaf Ebrahimi -c "client hello, adding alpn extension" \ 6604*62c56f98SSadaf Ebrahimi -s "found alpn extension" \ 6605*62c56f98SSadaf Ebrahimi -C "got an alert message, type: \\[2:120]" \ 6606*62c56f98SSadaf Ebrahimi -s "server side, adding alpn extension" \ 6607*62c56f98SSadaf Ebrahimi -c "found alpn extension" \ 6608*62c56f98SSadaf Ebrahimi -c "Application Layer Protocol is abc" \ 6609*62c56f98SSadaf Ebrahimi -s "Application Layer Protocol is abc" 6610*62c56f98SSadaf Ebrahimi 6611*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6612*62c56f98SSadaf Ebrahimirun_test "ALPN: both, common cli2-srv1" \ 6613*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 alpn=abc,1234" \ 6614*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 alpn=1234,abc" \ 6615*62c56f98SSadaf Ebrahimi 0 \ 6616*62c56f98SSadaf Ebrahimi -c "client hello, adding alpn extension" \ 6617*62c56f98SSadaf Ebrahimi -s "found alpn extension" \ 6618*62c56f98SSadaf Ebrahimi -C "got an alert message, type: \\[2:120]" \ 6619*62c56f98SSadaf Ebrahimi -s "server side, adding alpn extension" \ 6620*62c56f98SSadaf Ebrahimi -c "found alpn extension" \ 6621*62c56f98SSadaf Ebrahimi -c "Application Layer Protocol is abc" \ 6622*62c56f98SSadaf Ebrahimi -s "Application Layer Protocol is abc" 6623*62c56f98SSadaf Ebrahimi 6624*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6625*62c56f98SSadaf Ebrahimirun_test "ALPN: both, common cli1-srv2" \ 6626*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 alpn=abc,1234" \ 6627*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 alpn=1234,abcde" \ 6628*62c56f98SSadaf Ebrahimi 0 \ 6629*62c56f98SSadaf Ebrahimi -c "client hello, adding alpn extension" \ 6630*62c56f98SSadaf Ebrahimi -s "found alpn extension" \ 6631*62c56f98SSadaf Ebrahimi -C "got an alert message, type: \\[2:120]" \ 6632*62c56f98SSadaf Ebrahimi -s "server side, adding alpn extension" \ 6633*62c56f98SSadaf Ebrahimi -c "found alpn extension" \ 6634*62c56f98SSadaf Ebrahimi -c "Application Layer Protocol is 1234" \ 6635*62c56f98SSadaf Ebrahimi -s "Application Layer Protocol is 1234" 6636*62c56f98SSadaf Ebrahimi 6637*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6638*62c56f98SSadaf Ebrahimirun_test "ALPN: both, no common" \ 6639*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 alpn=abc,123" \ 6640*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 alpn=1234,abcde" \ 6641*62c56f98SSadaf Ebrahimi 1 \ 6642*62c56f98SSadaf Ebrahimi -c "client hello, adding alpn extension" \ 6643*62c56f98SSadaf Ebrahimi -s "found alpn extension" \ 6644*62c56f98SSadaf Ebrahimi -c "got an alert message, type: \\[2:120]" \ 6645*62c56f98SSadaf Ebrahimi -S "server side, adding alpn extension" \ 6646*62c56f98SSadaf Ebrahimi -C "found alpn extension" \ 6647*62c56f98SSadaf Ebrahimi -C "Application Layer Protocol is 1234" \ 6648*62c56f98SSadaf Ebrahimi -S "Application Layer Protocol is 1234" 6649*62c56f98SSadaf Ebrahimi 6650*62c56f98SSadaf Ebrahimi 6651*62c56f98SSadaf Ebrahimi# Tests for keyUsage in leaf certificates, part 1: 6652*62c56f98SSadaf Ebrahimi# server-side certificate/suite selection 6653*62c56f98SSadaf Ebrahimi 6654*62c56f98SSadaf Ebrahimirun_test "keyUsage srv: RSA, digitalSignature -> (EC)DHE-RSA" \ 6655*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 key_file=data_files/server2.key \ 6656*62c56f98SSadaf Ebrahimi crt_file=data_files/server2.ku-ds.crt" \ 6657*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6658*62c56f98SSadaf Ebrahimi 0 \ 6659*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-[EC]*DHE-RSA-WITH-" 6660*62c56f98SSadaf Ebrahimi 6661*62c56f98SSadaf Ebrahimirun_test "keyUsage srv: RSA, keyEncipherment -> RSA" \ 6662*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 key_file=data_files/server2.key \ 6663*62c56f98SSadaf Ebrahimi crt_file=data_files/server2.ku-ke.crt" \ 6664*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6665*62c56f98SSadaf Ebrahimi 0 \ 6666*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-RSA-WITH-" 6667*62c56f98SSadaf Ebrahimi 6668*62c56f98SSadaf Ebrahimirun_test "keyUsage srv: RSA, keyAgreement -> fail" \ 6669*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 key_file=data_files/server2.key \ 6670*62c56f98SSadaf Ebrahimi crt_file=data_files/server2.ku-ka.crt" \ 6671*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6672*62c56f98SSadaf Ebrahimi 1 \ 6673*62c56f98SSadaf Ebrahimi -C "Ciphersuite is " 6674*62c56f98SSadaf Ebrahimi 6675*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 6676*62c56f98SSadaf Ebrahimirun_test "keyUsage srv: ECDSA, digitalSignature -> ECDHE-ECDSA" \ 6677*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 key_file=data_files/server5.key \ 6678*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.ku-ds.crt" \ 6679*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6680*62c56f98SSadaf Ebrahimi 0 \ 6681*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDHE-ECDSA-WITH-" 6682*62c56f98SSadaf Ebrahimi 6683*62c56f98SSadaf Ebrahimi 6684*62c56f98SSadaf Ebrahimirun_test "keyUsage srv: ECDSA, keyAgreement -> ECDH-" \ 6685*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 key_file=data_files/server5.key \ 6686*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.ku-ka.crt" \ 6687*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6688*62c56f98SSadaf Ebrahimi 0 \ 6689*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-ECDH-" 6690*62c56f98SSadaf Ebrahimi 6691*62c56f98SSadaf Ebrahimirun_test "keyUsage srv: ECDSA, keyEncipherment -> fail" \ 6692*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 key_file=data_files/server5.key \ 6693*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.ku-ke.crt" \ 6694*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6695*62c56f98SSadaf Ebrahimi 1 \ 6696*62c56f98SSadaf Ebrahimi -C "Ciphersuite is " 6697*62c56f98SSadaf Ebrahimi 6698*62c56f98SSadaf Ebrahimi# Tests for keyUsage in leaf certificates, part 2: 6699*62c56f98SSadaf Ebrahimi# client-side checking of server cert 6700*62c56f98SSadaf Ebrahimi 6701*62c56f98SSadaf Ebrahimirun_test "keyUsage cli: DigitalSignature+KeyEncipherment, RSA: OK" \ 6702*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server2.key \ 6703*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ds_ke.crt" \ 6704*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 \ 6705*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 6706*62c56f98SSadaf Ebrahimi 0 \ 6707*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 6708*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 6709*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-" 6710*62c56f98SSadaf Ebrahimi 6711*62c56f98SSadaf Ebrahimirun_test "keyUsage cli: DigitalSignature+KeyEncipherment, DHE-RSA: OK" \ 6712*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server2.key \ 6713*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ds_ke.crt" \ 6714*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 \ 6715*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA" \ 6716*62c56f98SSadaf Ebrahimi 0 \ 6717*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 6718*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 6719*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-" 6720*62c56f98SSadaf Ebrahimi 6721*62c56f98SSadaf Ebrahimirun_test "keyUsage cli: KeyEncipherment, RSA: OK" \ 6722*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server2.key \ 6723*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ke.crt" \ 6724*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 \ 6725*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 6726*62c56f98SSadaf Ebrahimi 0 \ 6727*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 6728*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 6729*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-" 6730*62c56f98SSadaf Ebrahimi 6731*62c56f98SSadaf Ebrahimirun_test "keyUsage cli: KeyEncipherment, DHE-RSA: fail" \ 6732*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server2.key \ 6733*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ke.crt" \ 6734*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 \ 6735*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA" \ 6736*62c56f98SSadaf Ebrahimi 1 \ 6737*62c56f98SSadaf Ebrahimi -c "bad certificate (usage extensions)" \ 6738*62c56f98SSadaf Ebrahimi -c "Processing of the Certificate handshake message failed" \ 6739*62c56f98SSadaf Ebrahimi -C "Ciphersuite is TLS-" 6740*62c56f98SSadaf Ebrahimi 6741*62c56f98SSadaf Ebrahimirun_test "keyUsage cli: KeyEncipherment, DHE-RSA: fail, soft" \ 6742*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server2.key \ 6743*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ke.crt" \ 6744*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 auth_mode=optional \ 6745*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA" \ 6746*62c56f98SSadaf Ebrahimi 0 \ 6747*62c56f98SSadaf Ebrahimi -c "bad certificate (usage extensions)" \ 6748*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 6749*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-" \ 6750*62c56f98SSadaf Ebrahimi -c "! Usage does not match the keyUsage extension" 6751*62c56f98SSadaf Ebrahimi 6752*62c56f98SSadaf Ebrahimirun_test "keyUsage cli: DigitalSignature, DHE-RSA: OK" \ 6753*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server2.key \ 6754*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ds.crt" \ 6755*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 \ 6756*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA" \ 6757*62c56f98SSadaf Ebrahimi 0 \ 6758*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 6759*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 6760*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-" 6761*62c56f98SSadaf Ebrahimi 6762*62c56f98SSadaf Ebrahimirun_test "keyUsage cli: DigitalSignature, RSA: fail" \ 6763*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server2.key \ 6764*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ds.crt" \ 6765*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 \ 6766*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 6767*62c56f98SSadaf Ebrahimi 1 \ 6768*62c56f98SSadaf Ebrahimi -c "bad certificate (usage extensions)" \ 6769*62c56f98SSadaf Ebrahimi -c "Processing of the Certificate handshake message failed" \ 6770*62c56f98SSadaf Ebrahimi -C "Ciphersuite is TLS-" 6771*62c56f98SSadaf Ebrahimi 6772*62c56f98SSadaf Ebrahimirun_test "keyUsage cli: DigitalSignature, RSA: fail, soft" \ 6773*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server2.key \ 6774*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ds.crt" \ 6775*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 auth_mode=optional \ 6776*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 6777*62c56f98SSadaf Ebrahimi 0 \ 6778*62c56f98SSadaf Ebrahimi -c "bad certificate (usage extensions)" \ 6779*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 6780*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-" \ 6781*62c56f98SSadaf Ebrahimi -c "! Usage does not match the keyUsage extension" 6782*62c56f98SSadaf Ebrahimi 6783*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 6784*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 6785*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6786*62c56f98SSadaf Ebrahimirun_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ 6787*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ 6788*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ds_ke.crt" \ 6789*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 6790*62c56f98SSadaf Ebrahimi 0 \ 6791*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 6792*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 6793*62c56f98SSadaf Ebrahimi -c "Ciphersuite is" 6794*62c56f98SSadaf Ebrahimi 6795*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 6796*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 6797*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6798*62c56f98SSadaf Ebrahimirun_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ 6799*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ 6800*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ke.crt" \ 6801*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 6802*62c56f98SSadaf Ebrahimi 1 \ 6803*62c56f98SSadaf Ebrahimi -c "bad certificate (usage extensions)" \ 6804*62c56f98SSadaf Ebrahimi -c "Processing of the Certificate handshake message failed" \ 6805*62c56f98SSadaf Ebrahimi -C "Ciphersuite is" 6806*62c56f98SSadaf Ebrahimi 6807*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 6808*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 6809*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6810*62c56f98SSadaf Ebrahimirun_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ 6811*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ 6812*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ka.crt" \ 6813*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 6814*62c56f98SSadaf Ebrahimi 1 \ 6815*62c56f98SSadaf Ebrahimi -c "bad certificate (usage extensions)" \ 6816*62c56f98SSadaf Ebrahimi -c "Processing of the Certificate handshake message failed" \ 6817*62c56f98SSadaf Ebrahimi -C "Ciphersuite is" 6818*62c56f98SSadaf Ebrahimi 6819*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 6820*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 6821*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6822*62c56f98SSadaf Ebrahimirun_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ 6823*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ 6824*62c56f98SSadaf Ebrahimi -cert data_files/server5.ku-ds.crt" \ 6825*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 6826*62c56f98SSadaf Ebrahimi 0 \ 6827*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 6828*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 6829*62c56f98SSadaf Ebrahimi -c "Ciphersuite is" 6830*62c56f98SSadaf Ebrahimi 6831*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 6832*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 6833*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6834*62c56f98SSadaf Ebrahimirun_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ 6835*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ 6836*62c56f98SSadaf Ebrahimi -cert data_files/server5.ku-ke.crt" \ 6837*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 6838*62c56f98SSadaf Ebrahimi 1 \ 6839*62c56f98SSadaf Ebrahimi -c "bad certificate (usage extensions)" \ 6840*62c56f98SSadaf Ebrahimi -c "Processing of the Certificate handshake message failed" \ 6841*62c56f98SSadaf Ebrahimi -C "Ciphersuite is" 6842*62c56f98SSadaf Ebrahimi 6843*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 6844*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 6845*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6846*62c56f98SSadaf Ebrahimirun_test "keyUsage cli 1.3: KeyAgreement, ECDSA: fail" \ 6847*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ 6848*62c56f98SSadaf Ebrahimi -cert data_files/server5.ku-ka.crt" \ 6849*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 6850*62c56f98SSadaf Ebrahimi 1 \ 6851*62c56f98SSadaf Ebrahimi -c "bad certificate (usage extensions)" \ 6852*62c56f98SSadaf Ebrahimi -c "Processing of the Certificate handshake message failed" \ 6853*62c56f98SSadaf Ebrahimi -C "Ciphersuite is" 6854*62c56f98SSadaf Ebrahimi 6855*62c56f98SSadaf Ebrahimi# Tests for keyUsage in leaf certificates, part 3: 6856*62c56f98SSadaf Ebrahimi# server-side checking of client cert 6857*62c56f98SSadaf Ebrahimi 6858*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6859*62c56f98SSadaf Ebrahimirun_test "keyUsage cli-auth: RSA, DigitalSignature: OK" \ 6860*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 auth_mode=optional" \ 6861*62c56f98SSadaf Ebrahimi "$O_CLI -key data_files/server2.key \ 6862*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ds.crt" \ 6863*62c56f98SSadaf Ebrahimi 0 \ 6864*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 6865*62c56f98SSadaf Ebrahimi -S "bad certificate (usage extensions)" \ 6866*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 6867*62c56f98SSadaf Ebrahimi 6868*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6869*62c56f98SSadaf Ebrahimirun_test "keyUsage cli-auth: RSA, KeyEncipherment: fail (soft)" \ 6870*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 auth_mode=optional" \ 6871*62c56f98SSadaf Ebrahimi "$O_CLI -key data_files/server2.key \ 6872*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ke.crt" \ 6873*62c56f98SSadaf Ebrahimi 0 \ 6874*62c56f98SSadaf Ebrahimi -s "bad certificate (usage extensions)" \ 6875*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 6876*62c56f98SSadaf Ebrahimi 6877*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6878*62c56f98SSadaf Ebrahimirun_test "keyUsage cli-auth: RSA, KeyEncipherment: fail (hard)" \ 6879*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 auth_mode=required" \ 6880*62c56f98SSadaf Ebrahimi "$O_CLI -key data_files/server2.key \ 6881*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ke.crt" \ 6882*62c56f98SSadaf Ebrahimi 1 \ 6883*62c56f98SSadaf Ebrahimi -s "bad certificate (usage extensions)" \ 6884*62c56f98SSadaf Ebrahimi -s "Processing of the Certificate handshake message failed" 6885*62c56f98SSadaf Ebrahimi 6886*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6887*62c56f98SSadaf Ebrahimirun_test "keyUsage cli-auth: ECDSA, DigitalSignature: OK" \ 6888*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 auth_mode=optional" \ 6889*62c56f98SSadaf Ebrahimi "$O_CLI -key data_files/server5.key \ 6890*62c56f98SSadaf Ebrahimi -cert data_files/server5.ku-ds.crt" \ 6891*62c56f98SSadaf Ebrahimi 0 \ 6892*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 6893*62c56f98SSadaf Ebrahimi -S "bad certificate (usage extensions)" \ 6894*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 6895*62c56f98SSadaf Ebrahimi 6896*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6897*62c56f98SSadaf Ebrahimirun_test "keyUsage cli-auth: ECDSA, KeyAgreement: fail (soft)" \ 6898*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 auth_mode=optional" \ 6899*62c56f98SSadaf Ebrahimi "$O_CLI -key data_files/server5.key \ 6900*62c56f98SSadaf Ebrahimi -cert data_files/server5.ku-ka.crt" \ 6901*62c56f98SSadaf Ebrahimi 0 \ 6902*62c56f98SSadaf Ebrahimi -s "bad certificate (usage extensions)" \ 6903*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 6904*62c56f98SSadaf Ebrahimi 6905*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 6906*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 6907*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6908*62c56f98SSadaf Ebrahimirun_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ 6909*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ 6910*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ 6911*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ds.crt" \ 6912*62c56f98SSadaf Ebrahimi 0 \ 6913*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 6914*62c56f98SSadaf Ebrahimi -S "bad certificate (usage extensions)" \ 6915*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 6916*62c56f98SSadaf Ebrahimi 6917*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 6918*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 6919*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6920*62c56f98SSadaf Ebrahimirun_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ 6921*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ 6922*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ 6923*62c56f98SSadaf Ebrahimi -cert data_files/server2.ku-ke.crt" \ 6924*62c56f98SSadaf Ebrahimi 0 \ 6925*62c56f98SSadaf Ebrahimi -s "bad certificate (usage extensions)" \ 6926*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 6927*62c56f98SSadaf Ebrahimi 6928*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 6929*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 6930*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6931*62c56f98SSadaf Ebrahimirun_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ 6932*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ 6933*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ 6934*62c56f98SSadaf Ebrahimi -cert data_files/server5.ku-ds.crt" \ 6935*62c56f98SSadaf Ebrahimi 0 \ 6936*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" \ 6937*62c56f98SSadaf Ebrahimi -S "bad certificate (usage extensions)" \ 6938*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 6939*62c56f98SSadaf Ebrahimi 6940*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 6941*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 6942*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 6943*62c56f98SSadaf Ebrahimirun_test "keyUsage cli-auth 1.3: ECDSA, KeyAgreement: fail (soft)" \ 6944*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ 6945*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ 6946*62c56f98SSadaf Ebrahimi -cert data_files/server5.ku-ka.crt" \ 6947*62c56f98SSadaf Ebrahimi 0 \ 6948*62c56f98SSadaf Ebrahimi -s "bad certificate (usage extensions)" \ 6949*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 6950*62c56f98SSadaf Ebrahimi 6951*62c56f98SSadaf Ebrahimi# Tests for extendedKeyUsage, part 1: server-side certificate/suite selection 6952*62c56f98SSadaf Ebrahimi 6953*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6954*62c56f98SSadaf Ebrahimirun_test "extKeyUsage srv: serverAuth -> OK" \ 6955*62c56f98SSadaf Ebrahimi "$P_SRV key_file=data_files/server5.key \ 6956*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.eku-srv.crt" \ 6957*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6958*62c56f98SSadaf Ebrahimi 0 6959*62c56f98SSadaf Ebrahimi 6960*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6961*62c56f98SSadaf Ebrahimirun_test "extKeyUsage srv: serverAuth,clientAuth -> OK" \ 6962*62c56f98SSadaf Ebrahimi "$P_SRV key_file=data_files/server5.key \ 6963*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.eku-srv.crt" \ 6964*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6965*62c56f98SSadaf Ebrahimi 0 6966*62c56f98SSadaf Ebrahimi 6967*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6968*62c56f98SSadaf Ebrahimirun_test "extKeyUsage srv: codeSign,anyEKU -> OK" \ 6969*62c56f98SSadaf Ebrahimi "$P_SRV key_file=data_files/server5.key \ 6970*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.eku-cs_any.crt" \ 6971*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6972*62c56f98SSadaf Ebrahimi 0 6973*62c56f98SSadaf Ebrahimi 6974*62c56f98SSadaf Ebrahimirequires_key_exchange_with_cert_in_tls12_or_tls13_enabled 6975*62c56f98SSadaf Ebrahimirun_test "extKeyUsage srv: codeSign -> fail" \ 6976*62c56f98SSadaf Ebrahimi "$P_SRV key_file=data_files/server5.key \ 6977*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.eku-cli.crt" \ 6978*62c56f98SSadaf Ebrahimi "$P_CLI" \ 6979*62c56f98SSadaf Ebrahimi 1 6980*62c56f98SSadaf Ebrahimi 6981*62c56f98SSadaf Ebrahimi# Tests for extendedKeyUsage, part 2: client-side checking of server cert 6982*62c56f98SSadaf Ebrahimi 6983*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6984*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli: serverAuth -> OK" \ 6985*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server5.key \ 6986*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-srv.crt" \ 6987*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 6988*62c56f98SSadaf Ebrahimi 0 \ 6989*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 6990*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 6991*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-" 6992*62c56f98SSadaf Ebrahimi 6993*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 6994*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli: serverAuth,clientAuth -> OK" \ 6995*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server5.key \ 6996*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-srv_cli.crt" \ 6997*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 6998*62c56f98SSadaf Ebrahimi 0 \ 6999*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 7000*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 7001*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-" 7002*62c56f98SSadaf Ebrahimi 7003*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 7004*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli: codeSign,anyEKU -> OK" \ 7005*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server5.key \ 7006*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cs_any.crt" \ 7007*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 7008*62c56f98SSadaf Ebrahimi 0 \ 7009*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 7010*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 7011*62c56f98SSadaf Ebrahimi -c "Ciphersuite is TLS-" 7012*62c56f98SSadaf Ebrahimi 7013*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 7014*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli: codeSign -> fail" \ 7015*62c56f98SSadaf Ebrahimi "$O_SRV -tls1_2 -key data_files/server5.key \ 7016*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cs.crt" \ 7017*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 7018*62c56f98SSadaf Ebrahimi 1 \ 7019*62c56f98SSadaf Ebrahimi -c "bad certificate (usage extensions)" \ 7020*62c56f98SSadaf Ebrahimi -c "Processing of the Certificate handshake message failed" \ 7021*62c56f98SSadaf Ebrahimi -C "Ciphersuite is TLS-" 7022*62c56f98SSadaf Ebrahimi 7023*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 7024*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 7025*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 7026*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli 1.3: serverAuth -> OK" \ 7027*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ 7028*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-srv.crt" \ 7029*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 7030*62c56f98SSadaf Ebrahimi 0 \ 7031*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 7032*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 7033*62c56f98SSadaf Ebrahimi -c "Ciphersuite is" 7034*62c56f98SSadaf Ebrahimi 7035*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 7036*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 7037*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 7038*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ 7039*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ 7040*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-srv_cli.crt" \ 7041*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 7042*62c56f98SSadaf Ebrahimi 0 \ 7043*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 7044*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 7045*62c56f98SSadaf Ebrahimi -c "Ciphersuite is" 7046*62c56f98SSadaf Ebrahimi 7047*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 7048*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 7049*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 7050*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ 7051*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ 7052*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cs_any.crt" \ 7053*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 7054*62c56f98SSadaf Ebrahimi 0 \ 7055*62c56f98SSadaf Ebrahimi -C "bad certificate (usage extensions)" \ 7056*62c56f98SSadaf Ebrahimi -C "Processing of the Certificate handshake message failed" \ 7057*62c56f98SSadaf Ebrahimi -c "Ciphersuite is" 7058*62c56f98SSadaf Ebrahimi 7059*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 7060*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 7061*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 7062*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli 1.3: codeSign -> fail" \ 7063*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ 7064*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cs.crt" \ 7065*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1" \ 7066*62c56f98SSadaf Ebrahimi 1 \ 7067*62c56f98SSadaf Ebrahimi -c "bad certificate (usage extensions)" \ 7068*62c56f98SSadaf Ebrahimi -c "Processing of the Certificate handshake message failed" \ 7069*62c56f98SSadaf Ebrahimi -C "Ciphersuite is" 7070*62c56f98SSadaf Ebrahimi 7071*62c56f98SSadaf Ebrahimi# Tests for extendedKeyUsage, part 3: server-side checking of client cert 7072*62c56f98SSadaf Ebrahimi 7073*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 7074*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli-auth: clientAuth -> OK" \ 7075*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 auth_mode=optional" \ 7076*62c56f98SSadaf Ebrahimi "$O_CLI -key data_files/server5.key \ 7077*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cli.crt" \ 7078*62c56f98SSadaf Ebrahimi 0 \ 7079*62c56f98SSadaf Ebrahimi -S "bad certificate (usage extensions)" \ 7080*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 7081*62c56f98SSadaf Ebrahimi 7082*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 7083*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli-auth: serverAuth,clientAuth -> OK" \ 7084*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 auth_mode=optional" \ 7085*62c56f98SSadaf Ebrahimi "$O_CLI -key data_files/server5.key \ 7086*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-srv_cli.crt" \ 7087*62c56f98SSadaf Ebrahimi 0 \ 7088*62c56f98SSadaf Ebrahimi -S "bad certificate (usage extensions)" \ 7089*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 7090*62c56f98SSadaf Ebrahimi 7091*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 7092*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli-auth: codeSign,anyEKU -> OK" \ 7093*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 auth_mode=optional" \ 7094*62c56f98SSadaf Ebrahimi "$O_CLI -key data_files/server5.key \ 7095*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cs_any.crt" \ 7096*62c56f98SSadaf Ebrahimi 0 \ 7097*62c56f98SSadaf Ebrahimi -S "bad certificate (usage extensions)" \ 7098*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 7099*62c56f98SSadaf Ebrahimi 7100*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 7101*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli-auth: codeSign -> fail (soft)" \ 7102*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 auth_mode=optional" \ 7103*62c56f98SSadaf Ebrahimi "$O_CLI -key data_files/server5.key \ 7104*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cs.crt" \ 7105*62c56f98SSadaf Ebrahimi 0 \ 7106*62c56f98SSadaf Ebrahimi -s "bad certificate (usage extensions)" \ 7107*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 7108*62c56f98SSadaf Ebrahimi 7109*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 7110*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli-auth: codeSign -> fail (hard)" \ 7111*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 auth_mode=required" \ 7112*62c56f98SSadaf Ebrahimi "$O_CLI -key data_files/server5.key \ 7113*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cs.crt" \ 7114*62c56f98SSadaf Ebrahimi 1 \ 7115*62c56f98SSadaf Ebrahimi -s "bad certificate (usage extensions)" \ 7116*62c56f98SSadaf Ebrahimi -s "Processing of the Certificate handshake message failed" 7117*62c56f98SSadaf Ebrahimi 7118*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 7119*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 7120*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 7121*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ 7122*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ 7123*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ 7124*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cli.crt" \ 7125*62c56f98SSadaf Ebrahimi 0 \ 7126*62c56f98SSadaf Ebrahimi -S "bad certificate (usage extensions)" \ 7127*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 7128*62c56f98SSadaf Ebrahimi 7129*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 7130*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 7131*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 7132*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ 7133*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ 7134*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ 7135*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-srv_cli.crt" \ 7136*62c56f98SSadaf Ebrahimi 0 \ 7137*62c56f98SSadaf Ebrahimi -S "bad certificate (usage extensions)" \ 7138*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 7139*62c56f98SSadaf Ebrahimi 7140*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 7141*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 7142*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 7143*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ 7144*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ 7145*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ 7146*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cs_any.crt" \ 7147*62c56f98SSadaf Ebrahimi 0 \ 7148*62c56f98SSadaf Ebrahimi -S "bad certificate (usage extensions)" \ 7149*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 7150*62c56f98SSadaf Ebrahimi 7151*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 7152*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 7153*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 7154*62c56f98SSadaf Ebrahimirun_test "extKeyUsage cli-auth 1.3: codeSign -> fail (soft)" \ 7155*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ 7156*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ 7157*62c56f98SSadaf Ebrahimi -cert data_files/server5.eku-cs.crt" \ 7158*62c56f98SSadaf Ebrahimi 0 \ 7159*62c56f98SSadaf Ebrahimi -s "bad certificate (usage extensions)" \ 7160*62c56f98SSadaf Ebrahimi -S "Processing of the Certificate handshake message failed" 7161*62c56f98SSadaf Ebrahimi 7162*62c56f98SSadaf Ebrahimi# Tests for DHM parameters loading 7163*62c56f98SSadaf Ebrahimi 7164*62c56f98SSadaf Ebrahimirun_test "DHM parameters: reference" \ 7165*62c56f98SSadaf Ebrahimi "$P_SRV" \ 7166*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7167*62c56f98SSadaf Ebrahimi debug_level=3" \ 7168*62c56f98SSadaf Ebrahimi 0 \ 7169*62c56f98SSadaf Ebrahimi -c "value of 'DHM: P ' (2048 bits)" \ 7170*62c56f98SSadaf Ebrahimi -c "value of 'DHM: G ' (2 bits)" 7171*62c56f98SSadaf Ebrahimi 7172*62c56f98SSadaf Ebrahimirun_test "DHM parameters: other parameters" \ 7173*62c56f98SSadaf Ebrahimi "$P_SRV dhm_file=data_files/dhparams.pem" \ 7174*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7175*62c56f98SSadaf Ebrahimi debug_level=3" \ 7176*62c56f98SSadaf Ebrahimi 0 \ 7177*62c56f98SSadaf Ebrahimi -c "value of 'DHM: P ' (1024 bits)" \ 7178*62c56f98SSadaf Ebrahimi -c "value of 'DHM: G ' (2 bits)" 7179*62c56f98SSadaf Ebrahimi 7180*62c56f98SSadaf Ebrahimi# Tests for DHM client-side size checking 7181*62c56f98SSadaf Ebrahimi 7182*62c56f98SSadaf Ebrahimirun_test "DHM size: server default, client default, OK" \ 7183*62c56f98SSadaf Ebrahimi "$P_SRV" \ 7184*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7185*62c56f98SSadaf Ebrahimi debug_level=1" \ 7186*62c56f98SSadaf Ebrahimi 0 \ 7187*62c56f98SSadaf Ebrahimi -C "DHM prime too short:" 7188*62c56f98SSadaf Ebrahimi 7189*62c56f98SSadaf Ebrahimirun_test "DHM size: server default, client 2048, OK" \ 7190*62c56f98SSadaf Ebrahimi "$P_SRV" \ 7191*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7192*62c56f98SSadaf Ebrahimi debug_level=1 dhmlen=2048" \ 7193*62c56f98SSadaf Ebrahimi 0 \ 7194*62c56f98SSadaf Ebrahimi -C "DHM prime too short:" 7195*62c56f98SSadaf Ebrahimi 7196*62c56f98SSadaf Ebrahimirun_test "DHM size: server 1024, client default, OK" \ 7197*62c56f98SSadaf Ebrahimi "$P_SRV dhm_file=data_files/dhparams.pem" \ 7198*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7199*62c56f98SSadaf Ebrahimi debug_level=1" \ 7200*62c56f98SSadaf Ebrahimi 0 \ 7201*62c56f98SSadaf Ebrahimi -C "DHM prime too short:" 7202*62c56f98SSadaf Ebrahimi 7203*62c56f98SSadaf Ebrahimirun_test "DHM size: server 999, client 999, OK" \ 7204*62c56f98SSadaf Ebrahimi "$P_SRV dhm_file=data_files/dh.999.pem" \ 7205*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7206*62c56f98SSadaf Ebrahimi debug_level=1 dhmlen=999" \ 7207*62c56f98SSadaf Ebrahimi 0 \ 7208*62c56f98SSadaf Ebrahimi -C "DHM prime too short:" 7209*62c56f98SSadaf Ebrahimi 7210*62c56f98SSadaf Ebrahimirun_test "DHM size: server 1000, client 1000, OK" \ 7211*62c56f98SSadaf Ebrahimi "$P_SRV dhm_file=data_files/dh.1000.pem" \ 7212*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7213*62c56f98SSadaf Ebrahimi debug_level=1 dhmlen=1000" \ 7214*62c56f98SSadaf Ebrahimi 0 \ 7215*62c56f98SSadaf Ebrahimi -C "DHM prime too short:" 7216*62c56f98SSadaf Ebrahimi 7217*62c56f98SSadaf Ebrahimirun_test "DHM size: server 1000, client default, rejected" \ 7218*62c56f98SSadaf Ebrahimi "$P_SRV dhm_file=data_files/dh.1000.pem" \ 7219*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7220*62c56f98SSadaf Ebrahimi debug_level=1" \ 7221*62c56f98SSadaf Ebrahimi 1 \ 7222*62c56f98SSadaf Ebrahimi -c "DHM prime too short:" 7223*62c56f98SSadaf Ebrahimi 7224*62c56f98SSadaf Ebrahimirun_test "DHM size: server 1000, client 1001, rejected" \ 7225*62c56f98SSadaf Ebrahimi "$P_SRV dhm_file=data_files/dh.1000.pem" \ 7226*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7227*62c56f98SSadaf Ebrahimi debug_level=1 dhmlen=1001" \ 7228*62c56f98SSadaf Ebrahimi 1 \ 7229*62c56f98SSadaf Ebrahimi -c "DHM prime too short:" 7230*62c56f98SSadaf Ebrahimi 7231*62c56f98SSadaf Ebrahimirun_test "DHM size: server 999, client 1000, rejected" \ 7232*62c56f98SSadaf Ebrahimi "$P_SRV dhm_file=data_files/dh.999.pem" \ 7233*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7234*62c56f98SSadaf Ebrahimi debug_level=1 dhmlen=1000" \ 7235*62c56f98SSadaf Ebrahimi 1 \ 7236*62c56f98SSadaf Ebrahimi -c "DHM prime too short:" 7237*62c56f98SSadaf Ebrahimi 7238*62c56f98SSadaf Ebrahimirun_test "DHM size: server 998, client 999, rejected" \ 7239*62c56f98SSadaf Ebrahimi "$P_SRV dhm_file=data_files/dh.998.pem" \ 7240*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7241*62c56f98SSadaf Ebrahimi debug_level=1 dhmlen=999" \ 7242*62c56f98SSadaf Ebrahimi 1 \ 7243*62c56f98SSadaf Ebrahimi -c "DHM prime too short:" 7244*62c56f98SSadaf Ebrahimi 7245*62c56f98SSadaf Ebrahimirun_test "DHM size: server default, client 2049, rejected" \ 7246*62c56f98SSadaf Ebrahimi "$P_SRV" \ 7247*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ 7248*62c56f98SSadaf Ebrahimi debug_level=1 dhmlen=2049" \ 7249*62c56f98SSadaf Ebrahimi 1 \ 7250*62c56f98SSadaf Ebrahimi -c "DHM prime too short:" 7251*62c56f98SSadaf Ebrahimi 7252*62c56f98SSadaf Ebrahimi# Tests for PSK callback 7253*62c56f98SSadaf Ebrahimi 7254*62c56f98SSadaf Ebrahimirun_test "PSK callback: psk, no callback" \ 7255*62c56f98SSadaf Ebrahimi "$P_SRV psk=abc123 psk_identity=foo" \ 7256*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7257*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7258*62c56f98SSadaf Ebrahimi 0 \ 7259*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7260*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7261*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7262*62c56f98SSadaf Ebrahimi 7263*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7264*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque psk on client, no callback" \ 7265*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo" \ 7266*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7267*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7268*62c56f98SSadaf Ebrahimi 0 \ 7269*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7270*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7271*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7272*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7273*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7274*62c56f98SSadaf Ebrahimi 7275*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7276*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque psk on client, no callback, SHA-384" \ 7277*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo" \ 7278*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-256-CBC-SHA384 \ 7279*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7280*62c56f98SSadaf Ebrahimi 0 \ 7281*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7282*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7283*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7284*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7285*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7286*62c56f98SSadaf Ebrahimi 7287*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7288*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque psk on client, no callback, EMS" \ 7289*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=1 debug_level=3 psk=abc123 psk_identity=foo" \ 7290*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=1 debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7291*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7292*62c56f98SSadaf Ebrahimi 0 \ 7293*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7294*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7295*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7296*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7297*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7298*62c56f98SSadaf Ebrahimi 7299*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7300*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque psk on client, no callback, SHA-384, EMS" \ 7301*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=1 debug_level=3 psk=abc123 psk_identity=foo" \ 7302*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=1 debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-256-CBC-SHA384 \ 7303*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7304*62c56f98SSadaf Ebrahimi 0 \ 7305*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7306*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7307*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7308*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7309*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7310*62c56f98SSadaf Ebrahimi 7311*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7312*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque rsa-psk on client, no callback" \ 7313*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo" \ 7314*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA256 \ 7315*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7316*62c56f98SSadaf Ebrahimi 0 \ 7317*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7318*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7319*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7320*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7321*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7322*62c56f98SSadaf Ebrahimi 7323*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7324*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque rsa-psk on client, no callback, SHA-384" \ 7325*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo" \ 7326*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-256-CBC-SHA384 \ 7327*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7328*62c56f98SSadaf Ebrahimi 0 \ 7329*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7330*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7331*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7332*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7333*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7334*62c56f98SSadaf Ebrahimi 7335*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7336*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque rsa-psk on client, no callback, EMS" \ 7337*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=1 debug_level=3 psk=abc123 psk_identity=foo" \ 7338*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=1 debug_level=3 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA \ 7339*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7340*62c56f98SSadaf Ebrahimi 0 \ 7341*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7342*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7343*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7344*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7345*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7346*62c56f98SSadaf Ebrahimi 7347*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7348*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque rsa-psk on client, no callback, SHA-384, EMS" \ 7349*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=1 debug_level=3 psk=abc123 psk_identity=foo" \ 7350*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=1 debug_level=3 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-256-CBC-SHA384 \ 7351*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7352*62c56f98SSadaf Ebrahimi 0 \ 7353*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7354*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7355*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7356*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7357*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7358*62c56f98SSadaf Ebrahimi 7359*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7360*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque ecdhe-psk on client, no callback" \ 7361*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo" \ 7362*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256 \ 7363*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7364*62c56f98SSadaf Ebrahimi 0 \ 7365*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7366*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7367*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7368*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7369*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7370*62c56f98SSadaf Ebrahimi 7371*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7372*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque ecdhe-psk on client, no callback, SHA-384" \ 7373*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo" \ 7374*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 \ 7375*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7376*62c56f98SSadaf Ebrahimi 0 \ 7377*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7378*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7379*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7380*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7381*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7382*62c56f98SSadaf Ebrahimi 7383*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7384*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque ecdhe-psk on client, no callback, EMS" \ 7385*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=1 debug_level=3 psk=abc123 psk_identity=foo" \ 7386*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=1 debug_level=3 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA \ 7387*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7388*62c56f98SSadaf Ebrahimi 0 \ 7389*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7390*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7391*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7392*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7393*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7394*62c56f98SSadaf Ebrahimi 7395*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7396*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque ecdhe-psk on client, no callback, SHA-384, EMS" \ 7397*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=1 debug_level=3 psk=abc123 psk_identity=foo" \ 7398*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=1 debug_level=3 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 \ 7399*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7400*62c56f98SSadaf Ebrahimi 0 \ 7401*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7402*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7403*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7404*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7405*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7406*62c56f98SSadaf Ebrahimi 7407*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7408*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque dhe-psk on client, no callback" \ 7409*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo" \ 7410*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-128-CBC-SHA256 \ 7411*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7412*62c56f98SSadaf Ebrahimi 0 \ 7413*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7414*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7415*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7416*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7417*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7418*62c56f98SSadaf Ebrahimi 7419*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7420*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque dhe-psk on client, no callback, SHA-384" \ 7421*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo" \ 7422*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 \ 7423*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7424*62c56f98SSadaf Ebrahimi 0 \ 7425*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7426*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7427*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7428*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7429*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7430*62c56f98SSadaf Ebrahimi 7431*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7432*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque dhe-psk on client, no callback, EMS" \ 7433*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=1 debug_level=3 psk=abc123 psk_identity=foo" \ 7434*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=1 debug_level=3 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-128-CBC-SHA \ 7435*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7436*62c56f98SSadaf Ebrahimi 0 \ 7437*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7438*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7439*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7440*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7441*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7442*62c56f98SSadaf Ebrahimi 7443*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7444*62c56f98SSadaf Ebrahimirun_test "PSK callback: opaque dhe-psk on client, no callback, SHA-384, EMS" \ 7445*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=1 debug_level=3 psk=abc123 psk_identity=foo" \ 7446*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=1 debug_level=3 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 \ 7447*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 psk_opaque=1" \ 7448*62c56f98SSadaf Ebrahimi 0 \ 7449*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7450*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7451*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7452*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7453*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7454*62c56f98SSadaf Ebrahimi 7455*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7456*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, static opaque on server, no callback" \ 7457*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA" \ 7458*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7459*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7460*62c56f98SSadaf Ebrahimi 0 \ 7461*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7462*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7463*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7464*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7465*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7466*62c56f98SSadaf Ebrahimi 7467*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7468*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, static opaque on server, no callback, SHA-384" \ 7469*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-256-CBC-SHA384" \ 7470*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-256-CBC-SHA384 \ 7471*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7472*62c56f98SSadaf Ebrahimi 0 \ 7473*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7474*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7475*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7476*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7477*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7478*62c56f98SSadaf Ebrahimi 7479*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7480*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, static opaque on server, no callback, EMS" \ 7481*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 \ 7482*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA extended_ms=1" \ 7483*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7484*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 extended_ms=1" \ 7485*62c56f98SSadaf Ebrahimi 0 \ 7486*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7487*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7488*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7489*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7490*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7491*62c56f98SSadaf Ebrahimi 7492*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7493*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, static opaque on server, no callback, EMS, SHA384" \ 7494*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 \ 7495*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-256-CBC-SHA384 extended_ms=1" \ 7496*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-256-CBC-SHA384 \ 7497*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 extended_ms=1" \ 7498*62c56f98SSadaf Ebrahimi 0 \ 7499*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7500*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7501*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7502*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7503*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7504*62c56f98SSadaf Ebrahimi 7505*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7506*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw rsa-psk on client, static opaque on server, no callback" \ 7507*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=5 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA" \ 7508*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=5 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA \ 7509*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7510*62c56f98SSadaf Ebrahimi 0 \ 7511*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7512*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7513*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7514*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7515*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7516*62c56f98SSadaf Ebrahimi 7517*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7518*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw rsa-psk on client, static opaque on server, no callback, SHA-384" \ 7519*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-256-CBC-SHA384" \ 7520*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-256-CBC-SHA384 \ 7521*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7522*62c56f98SSadaf Ebrahimi 0 \ 7523*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7524*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7525*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7526*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7527*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7528*62c56f98SSadaf Ebrahimi 7529*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7530*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw rsa-psk on client, static opaque on server, no callback, EMS" \ 7531*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 \ 7532*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA extended_ms=1" \ 7533*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA \ 7534*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 extended_ms=1" \ 7535*62c56f98SSadaf Ebrahimi 0 \ 7536*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7537*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7538*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7539*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7540*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7541*62c56f98SSadaf Ebrahimi 7542*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7543*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw rsa-psk on client, static opaque on server, no callback, EMS, SHA384" \ 7544*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 \ 7545*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-PSK-WITH-AES-256-CBC-SHA384 extended_ms=1" \ 7546*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-256-CBC-SHA384 \ 7547*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 extended_ms=1" \ 7548*62c56f98SSadaf Ebrahimi 0 \ 7549*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7550*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7551*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7552*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7553*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7554*62c56f98SSadaf Ebrahimi 7555*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7556*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw ecdhe-psk on client, static opaque on server, no callback" \ 7557*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=5 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA" \ 7558*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=5 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA \ 7559*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7560*62c56f98SSadaf Ebrahimi 0 \ 7561*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7562*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7563*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7564*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7565*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7566*62c56f98SSadaf Ebrahimi 7567*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7568*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw ecdhe-psk on client, static opaque on server, no callback, SHA-384" \ 7569*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384" \ 7570*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 \ 7571*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7572*62c56f98SSadaf Ebrahimi 0 \ 7573*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7574*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7575*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7576*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7577*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7578*62c56f98SSadaf Ebrahimi 7579*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7580*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw ecdhe-psk on client, static opaque on server, no callback, EMS" \ 7581*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 \ 7582*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA extended_ms=1" \ 7583*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA \ 7584*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 extended_ms=1" \ 7585*62c56f98SSadaf Ebrahimi 0 \ 7586*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7587*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7588*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7589*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7590*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7591*62c56f98SSadaf Ebrahimi 7592*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7593*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw ecdhe-psk on client, static opaque on server, no callback, EMS, SHA384" \ 7594*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 \ 7595*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 extended_ms=1" \ 7596*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 \ 7597*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 extended_ms=1" \ 7598*62c56f98SSadaf Ebrahimi 0 \ 7599*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7600*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7601*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7602*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7603*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7604*62c56f98SSadaf Ebrahimi 7605*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7606*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw dhe-psk on client, static opaque on server, no callback" \ 7607*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=5 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-128-CBC-SHA" \ 7608*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=5 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-128-CBC-SHA \ 7609*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7610*62c56f98SSadaf Ebrahimi 0 \ 7611*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7612*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7613*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7614*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7615*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7616*62c56f98SSadaf Ebrahimi 7617*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7618*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw dhe-psk on client, static opaque on server, no callback, SHA-384" \ 7619*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=1 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-256-CBC-SHA384" \ 7620*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=1 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 \ 7621*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7622*62c56f98SSadaf Ebrahimi 0 \ 7623*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7624*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7625*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7626*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7627*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7628*62c56f98SSadaf Ebrahimi 7629*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7630*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw dhe-psk on client, static opaque on server, no callback, EMS" \ 7631*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 \ 7632*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-DHE-PSK-WITH-AES-128-CBC-SHA extended_ms=1" \ 7633*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-128-CBC-SHA \ 7634*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 extended_ms=1" \ 7635*62c56f98SSadaf Ebrahimi 0 \ 7636*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7637*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7638*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7639*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7640*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7641*62c56f98SSadaf Ebrahimi 7642*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7643*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw dhe-psk on client, static opaque on server, no callback, EMS, SHA384" \ 7644*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk=abc123 psk_identity=foo psk_opaque=1 min_version=tls12 \ 7645*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 extended_ms=1" \ 7646*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 \ 7647*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123 extended_ms=1" \ 7648*62c56f98SSadaf Ebrahimi 0 \ 7649*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7650*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7651*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7652*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7653*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7654*62c56f98SSadaf Ebrahimi 7655*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7656*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, no static PSK on server, opaque PSK from callback" \ 7657*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA" \ 7658*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7659*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7660*62c56f98SSadaf Ebrahimi 0 \ 7661*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7662*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7663*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7664*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7665*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7666*62c56f98SSadaf Ebrahimi 7667*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7668*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, no static PSK on server, opaque PSK from callback, SHA-384" \ 7669*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-256-CBC-SHA384" \ 7670*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-256-CBC-SHA384 \ 7671*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7672*62c56f98SSadaf Ebrahimi 0 \ 7673*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7674*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7675*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7676*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7677*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7678*62c56f98SSadaf Ebrahimi 7679*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7680*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, no static PSK on server, opaque PSK from callback, EMS" \ 7681*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 \ 7682*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA extended_ms=1" \ 7683*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7684*62c56f98SSadaf Ebrahimi psk_identity=abc psk=dead extended_ms=1" \ 7685*62c56f98SSadaf Ebrahimi 0 \ 7686*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7687*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7688*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7689*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7690*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7691*62c56f98SSadaf Ebrahimi 7692*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7693*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, no static PSK on server, opaque PSK from callback, EMS, SHA384" \ 7694*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 \ 7695*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-256-CBC-SHA384 extended_ms=1" \ 7696*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-256-CBC-SHA384 \ 7697*62c56f98SSadaf Ebrahimi psk_identity=abc psk=dead extended_ms=1" \ 7698*62c56f98SSadaf Ebrahimi 0 \ 7699*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7700*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7701*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7702*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7703*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7704*62c56f98SSadaf Ebrahimi 7705*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7706*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw rsa-psk on client, no static RSA-PSK on server, opaque RSA-PSK from callback" \ 7707*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA" \ 7708*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA \ 7709*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7710*62c56f98SSadaf Ebrahimi 0 \ 7711*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7712*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7713*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7714*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7715*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7716*62c56f98SSadaf Ebrahimi 7717*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7718*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw rsa-psk on client, no static RSA-PSK on server, opaque RSA-PSK from callback, SHA-384" \ 7719*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-256-CBC-SHA384" \ 7720*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-256-CBC-SHA384 \ 7721*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7722*62c56f98SSadaf Ebrahimi 0 \ 7723*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7724*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7725*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7726*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7727*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7728*62c56f98SSadaf Ebrahimi 7729*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7730*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw rsa-psk on client, no static RSA-PSK on server, opaque RSA-PSK from callback, EMS" \ 7731*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 \ 7732*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA extended_ms=1" \ 7733*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA \ 7734*62c56f98SSadaf Ebrahimi psk_identity=abc psk=dead extended_ms=1" \ 7735*62c56f98SSadaf Ebrahimi 0 \ 7736*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7737*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7738*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7739*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7740*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7741*62c56f98SSadaf Ebrahimi 7742*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7743*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw rsa-psk on client, no static RSA-PSK on server, opaque RSA-PSK from callback, EMS, SHA384" \ 7744*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 \ 7745*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-PSK-WITH-AES-256-CBC-SHA384 extended_ms=1" \ 7746*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-RSA-PSK-WITH-AES-256-CBC-SHA384 \ 7747*62c56f98SSadaf Ebrahimi psk_identity=abc psk=dead extended_ms=1" \ 7748*62c56f98SSadaf Ebrahimi 0 \ 7749*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7750*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7751*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7752*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7753*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7754*62c56f98SSadaf Ebrahimi 7755*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7756*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw ecdhe-psk on client, no static ECDHE-PSK on server, opaque ECDHE-PSK from callback" \ 7757*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA" \ 7758*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA \ 7759*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7760*62c56f98SSadaf Ebrahimi 0 \ 7761*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7762*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7763*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7764*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7765*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7766*62c56f98SSadaf Ebrahimi 7767*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7768*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw ecdhe-psk on client, no static ECDHE-PSK on server, opaque ECDHE-PSK from callback, SHA-384" \ 7769*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384" \ 7770*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 \ 7771*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7772*62c56f98SSadaf Ebrahimi 0 \ 7773*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7774*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7775*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7776*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7777*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7778*62c56f98SSadaf Ebrahimi 7779*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7780*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw ecdhe-psk on client, no static ECDHE-PSK on server, opaque ECDHE-PSK from callback, EMS" \ 7781*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 \ 7782*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA extended_ms=1" \ 7783*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA \ 7784*62c56f98SSadaf Ebrahimi psk_identity=abc psk=dead extended_ms=1" \ 7785*62c56f98SSadaf Ebrahimi 0 \ 7786*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7787*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7788*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7789*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7790*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7791*62c56f98SSadaf Ebrahimi 7792*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7793*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw ecdhe-psk on client, no static ECDHE-PSK on server, opaque ECDHE-PSK from callback, EMS, SHA384" \ 7794*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 \ 7795*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 extended_ms=1" \ 7796*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 \ 7797*62c56f98SSadaf Ebrahimi psk_identity=abc psk=dead extended_ms=1" \ 7798*62c56f98SSadaf Ebrahimi 0 \ 7799*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7800*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7801*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7802*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7803*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7804*62c56f98SSadaf Ebrahimi 7805*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7806*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw dhe-psk on client, no static DHE-PSK on server, opaque DHE-PSK from callback" \ 7807*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-128-CBC-SHA" \ 7808*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-128-CBC-SHA \ 7809*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7810*62c56f98SSadaf Ebrahimi 0 \ 7811*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7812*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7813*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7814*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7815*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7816*62c56f98SSadaf Ebrahimi 7817*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7818*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw dhe-psk on client, no static DHE-PSK on server, opaque DHE-PSK from callback, SHA-384" \ 7819*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-256-CBC-SHA384" \ 7820*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 \ 7821*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7822*62c56f98SSadaf Ebrahimi 0 \ 7823*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7824*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7825*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7826*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7827*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7828*62c56f98SSadaf Ebrahimi 7829*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7830*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw dhe-psk on client, no static DHE-PSK on server, opaque DHE-PSK from callback, EMS" \ 7831*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 \ 7832*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-DHE-PSK-WITH-AES-128-CBC-SHA extended_ms=1" \ 7833*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-128-CBC-SHA \ 7834*62c56f98SSadaf Ebrahimi psk_identity=abc psk=dead extended_ms=1" \ 7835*62c56f98SSadaf Ebrahimi 0 \ 7836*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7837*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7838*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7839*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7840*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7841*62c56f98SSadaf Ebrahimi 7842*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7843*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw dhe-psk on client, no static DHE-PSK on server, opaque DHE-PSK from callback, EMS, SHA384" \ 7844*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 \ 7845*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 extended_ms=1" \ 7846*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 min_version=tls12 force_ciphersuite=TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 \ 7847*62c56f98SSadaf Ebrahimi psk_identity=abc psk=dead extended_ms=1" \ 7848*62c56f98SSadaf Ebrahimi 0 \ 7849*62c56f98SSadaf Ebrahimi -c "session hash for extended master secret"\ 7850*62c56f98SSadaf Ebrahimi -s "session hash for extended master secret"\ 7851*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7852*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7853*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7854*62c56f98SSadaf Ebrahimi 7855*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7856*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, mismatching static raw PSK on server, opaque PSK from callback" \ 7857*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 psk_identity=foo psk=abc123 debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA" \ 7858*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7859*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7860*62c56f98SSadaf Ebrahimi 0 \ 7861*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7862*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7863*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7864*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7865*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7866*62c56f98SSadaf Ebrahimi 7867*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7868*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, mismatching static opaque PSK on server, opaque PSK from callback" \ 7869*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 psk_opaque=1 psk_identity=foo psk=abc123 debug_level=3 psk_list=abc,dead,def,beef psk_list_opaque=1 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA" \ 7870*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7871*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7872*62c56f98SSadaf Ebrahimi 0 \ 7873*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7874*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7875*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7876*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7877*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7878*62c56f98SSadaf Ebrahimi 7879*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7880*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, mismatching static opaque PSK on server, raw PSK from callback" \ 7881*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 psk_opaque=1 psk_identity=foo psk=abc123 debug_level=3 psk_list=abc,dead,def,beef min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA" \ 7882*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7883*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7884*62c56f98SSadaf Ebrahimi 0 \ 7885*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7886*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7887*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7888*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7889*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7890*62c56f98SSadaf Ebrahimi 7891*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7892*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, id-matching but wrong raw PSK on server, opaque PSK from callback" \ 7893*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 psk_opaque=1 psk_identity=def psk=abc123 debug_level=3 psk_list=abc,dead,def,beef min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA" \ 7894*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7895*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7896*62c56f98SSadaf Ebrahimi 0 \ 7897*62c56f98SSadaf Ebrahimi -C "session hash for extended master secret"\ 7898*62c56f98SSadaf Ebrahimi -S "session hash for extended master secret"\ 7899*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7900*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7901*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7902*62c56f98SSadaf Ebrahimi 7903*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 7904*62c56f98SSadaf Ebrahimirun_test "PSK callback: raw psk on client, matching opaque PSK on server, wrong opaque PSK from callback" \ 7905*62c56f98SSadaf Ebrahimi "$P_SRV extended_ms=0 psk_opaque=1 psk_identity=def psk=beef debug_level=3 psk_list=abc,dead,def,abc123 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA" \ 7906*62c56f98SSadaf Ebrahimi "$P_CLI extended_ms=0 debug_level=3 min_version=tls12 force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7907*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7908*62c56f98SSadaf Ebrahimi 1 \ 7909*62c56f98SSadaf Ebrahimi -s "SSL - Verification of the message MAC failed" 7910*62c56f98SSadaf Ebrahimi 7911*62c56f98SSadaf Ebrahimirun_test "PSK callback: no psk, no callback" \ 7912*62c56f98SSadaf Ebrahimi "$P_SRV" \ 7913*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7914*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7915*62c56f98SSadaf Ebrahimi 1 \ 7916*62c56f98SSadaf Ebrahimi -s "SSL - The handshake negotiation failed" \ 7917*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7918*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7919*62c56f98SSadaf Ebrahimi 7920*62c56f98SSadaf Ebrahimirun_test "PSK callback: callback overrides other settings" \ 7921*62c56f98SSadaf Ebrahimi "$P_SRV psk=abc123 psk_identity=foo psk_list=abc,dead,def,beef" \ 7922*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7923*62c56f98SSadaf Ebrahimi psk_identity=foo psk=abc123" \ 7924*62c56f98SSadaf Ebrahimi 1 \ 7925*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7926*62c56f98SSadaf Ebrahimi -s "SSL - Unknown identity received" \ 7927*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7928*62c56f98SSadaf Ebrahimi 7929*62c56f98SSadaf Ebrahimirun_test "PSK callback: first id matches" \ 7930*62c56f98SSadaf Ebrahimi "$P_SRV psk_list=abc,dead,def,beef" \ 7931*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7932*62c56f98SSadaf Ebrahimi psk_identity=abc psk=dead" \ 7933*62c56f98SSadaf Ebrahimi 0 \ 7934*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7935*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7936*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7937*62c56f98SSadaf Ebrahimi 7938*62c56f98SSadaf Ebrahimirun_test "PSK callback: second id matches" \ 7939*62c56f98SSadaf Ebrahimi "$P_SRV psk_list=abc,dead,def,beef" \ 7940*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7941*62c56f98SSadaf Ebrahimi psk_identity=def psk=beef" \ 7942*62c56f98SSadaf Ebrahimi 0 \ 7943*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7944*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7945*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7946*62c56f98SSadaf Ebrahimi 7947*62c56f98SSadaf Ebrahimirun_test "PSK callback: no match" \ 7948*62c56f98SSadaf Ebrahimi "$P_SRV psk_list=abc,dead,def,beef" \ 7949*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7950*62c56f98SSadaf Ebrahimi psk_identity=ghi psk=beef" \ 7951*62c56f98SSadaf Ebrahimi 1 \ 7952*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7953*62c56f98SSadaf Ebrahimi -s "SSL - Unknown identity received" \ 7954*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 7955*62c56f98SSadaf Ebrahimi 7956*62c56f98SSadaf Ebrahimirun_test "PSK callback: wrong key" \ 7957*62c56f98SSadaf Ebrahimi "$P_SRV psk_list=abc,dead,def,beef" \ 7958*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-PSK-WITH-AES-128-CBC-SHA \ 7959*62c56f98SSadaf Ebrahimi psk_identity=abc psk=beef" \ 7960*62c56f98SSadaf Ebrahimi 1 \ 7961*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 7962*62c56f98SSadaf Ebrahimi -S "SSL - Unknown identity received" \ 7963*62c56f98SSadaf Ebrahimi -s "SSL - Verification of the message MAC failed" 7964*62c56f98SSadaf Ebrahimi 7965*62c56f98SSadaf Ebrahimi# Tests for EC J-PAKE 7966*62c56f98SSadaf Ebrahimi 7967*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 7968*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 7969*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: client not configured" \ 7970*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 7971*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 7972*62c56f98SSadaf Ebrahimi 0 \ 7973*62c56f98SSadaf Ebrahimi -C "add ciphersuite: 0xc0ff" \ 7974*62c56f98SSadaf Ebrahimi -C "adding ecjpake_kkpp extension" \ 7975*62c56f98SSadaf Ebrahimi -S "found ecjpake kkpp extension" \ 7976*62c56f98SSadaf Ebrahimi -S "skip ecjpake kkpp extension" \ 7977*62c56f98SSadaf Ebrahimi -S "ciphersuite mismatch: ecjpake not configured" \ 7978*62c56f98SSadaf Ebrahimi -S "server hello, ecjpake kkpp extension" \ 7979*62c56f98SSadaf Ebrahimi -C "found ecjpake_kkpp extension" \ 7980*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" 7981*62c56f98SSadaf Ebrahimi 7982*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 7983*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: server not configured" \ 7984*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 7985*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 ecjpake_pw=bla \ 7986*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 7987*62c56f98SSadaf Ebrahimi 1 \ 7988*62c56f98SSadaf Ebrahimi -c "add ciphersuite: c0ff" \ 7989*62c56f98SSadaf Ebrahimi -c "adding ecjpake_kkpp extension" \ 7990*62c56f98SSadaf Ebrahimi -s "found ecjpake kkpp extension" \ 7991*62c56f98SSadaf Ebrahimi -s "skip ecjpake kkpp extension" \ 7992*62c56f98SSadaf Ebrahimi -s "ciphersuite mismatch: ecjpake not configured" \ 7993*62c56f98SSadaf Ebrahimi -S "server hello, ecjpake kkpp extension" \ 7994*62c56f98SSadaf Ebrahimi -C "found ecjpake_kkpp extension" \ 7995*62c56f98SSadaf Ebrahimi -s "SSL - The handshake negotiation failed" 7996*62c56f98SSadaf Ebrahimi 7997*62c56f98SSadaf Ebrahimi# Note: if the name of this test is changed, then please adjust the corresponding 7998*62c56f98SSadaf Ebrahimi# filtering label in "test_tls1_2_ecjpake_compatibility" (in "all.sh") 7999*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 8000*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: working, TLS" \ 8001*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 ecjpake_pw=bla" \ 8002*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 ecjpake_pw=bla \ 8003*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 8004*62c56f98SSadaf Ebrahimi 0 \ 8005*62c56f98SSadaf Ebrahimi -c "add ciphersuite: c0ff" \ 8006*62c56f98SSadaf Ebrahimi -c "adding ecjpake_kkpp extension" \ 8007*62c56f98SSadaf Ebrahimi -C "re-using cached ecjpake parameters" \ 8008*62c56f98SSadaf Ebrahimi -s "found ecjpake kkpp extension" \ 8009*62c56f98SSadaf Ebrahimi -S "skip ecjpake kkpp extension" \ 8010*62c56f98SSadaf Ebrahimi -S "ciphersuite mismatch: ecjpake not configured" \ 8011*62c56f98SSadaf Ebrahimi -s "server hello, ecjpake kkpp extension" \ 8012*62c56f98SSadaf Ebrahimi -c "found ecjpake_kkpp extension" \ 8013*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 8014*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 8015*62c56f98SSadaf Ebrahimi 8016*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 8017*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 8018*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: opaque password client+server, working, TLS" \ 8019*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1" \ 8020*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1\ 8021*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 8022*62c56f98SSadaf Ebrahimi 0 \ 8023*62c56f98SSadaf Ebrahimi -c "add ciphersuite: c0ff" \ 8024*62c56f98SSadaf Ebrahimi -c "adding ecjpake_kkpp extension" \ 8025*62c56f98SSadaf Ebrahimi -c "using opaque password" \ 8026*62c56f98SSadaf Ebrahimi -s "using opaque password" \ 8027*62c56f98SSadaf Ebrahimi -C "re-using cached ecjpake parameters" \ 8028*62c56f98SSadaf Ebrahimi -s "found ecjpake kkpp extension" \ 8029*62c56f98SSadaf Ebrahimi -S "skip ecjpake kkpp extension" \ 8030*62c56f98SSadaf Ebrahimi -S "ciphersuite mismatch: ecjpake not configured" \ 8031*62c56f98SSadaf Ebrahimi -s "server hello, ecjpake kkpp extension" \ 8032*62c56f98SSadaf Ebrahimi -c "found ecjpake_kkpp extension" \ 8033*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 8034*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 8035*62c56f98SSadaf Ebrahimi 8036*62c56f98SSadaf Ebrahimi# Note: if the name of this test is changed, then please adjust the corresponding 8037*62c56f98SSadaf Ebrahimi# filtering label in "test_tls1_2_ecjpake_compatibility" (in "all.sh") 8038*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 8039*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 8040*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: opaque password client only, working, TLS" \ 8041*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 ecjpake_pw=bla" \ 8042*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1\ 8043*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 8044*62c56f98SSadaf Ebrahimi 0 \ 8045*62c56f98SSadaf Ebrahimi -c "add ciphersuite: c0ff" \ 8046*62c56f98SSadaf Ebrahimi -c "adding ecjpake_kkpp extension" \ 8047*62c56f98SSadaf Ebrahimi -c "using opaque password" \ 8048*62c56f98SSadaf Ebrahimi -S "using opaque password" \ 8049*62c56f98SSadaf Ebrahimi -C "re-using cached ecjpake parameters" \ 8050*62c56f98SSadaf Ebrahimi -s "found ecjpake kkpp extension" \ 8051*62c56f98SSadaf Ebrahimi -S "skip ecjpake kkpp extension" \ 8052*62c56f98SSadaf Ebrahimi -S "ciphersuite mismatch: ecjpake not configured" \ 8053*62c56f98SSadaf Ebrahimi -s "server hello, ecjpake kkpp extension" \ 8054*62c56f98SSadaf Ebrahimi -c "found ecjpake_kkpp extension" \ 8055*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 8056*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 8057*62c56f98SSadaf Ebrahimi 8058*62c56f98SSadaf Ebrahimi# Note: if the name of this test is changed, then please adjust the corresponding 8059*62c56f98SSadaf Ebrahimi# filtering label in "test_tls1_2_ecjpake_compatibility" (in "all.sh") 8060*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 8061*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 8062*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: opaque password server only, working, TLS" \ 8063*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1" \ 8064*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 ecjpake_pw=bla\ 8065*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 8066*62c56f98SSadaf Ebrahimi 0 \ 8067*62c56f98SSadaf Ebrahimi -c "add ciphersuite: c0ff" \ 8068*62c56f98SSadaf Ebrahimi -c "adding ecjpake_kkpp extension" \ 8069*62c56f98SSadaf Ebrahimi -C "using opaque password" \ 8070*62c56f98SSadaf Ebrahimi -s "using opaque password" \ 8071*62c56f98SSadaf Ebrahimi -C "re-using cached ecjpake parameters" \ 8072*62c56f98SSadaf Ebrahimi -s "found ecjpake kkpp extension" \ 8073*62c56f98SSadaf Ebrahimi -S "skip ecjpake kkpp extension" \ 8074*62c56f98SSadaf Ebrahimi -S "ciphersuite mismatch: ecjpake not configured" \ 8075*62c56f98SSadaf Ebrahimi -s "server hello, ecjpake kkpp extension" \ 8076*62c56f98SSadaf Ebrahimi -c "found ecjpake_kkpp extension" \ 8077*62c56f98SSadaf Ebrahimi -S "SSL - The handshake negotiation failed" \ 8078*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 8079*62c56f98SSadaf Ebrahimi 8080*62c56f98SSadaf Ebrahimiserver_needs_more_time 1 8081*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 8082*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: password mismatch, TLS" \ 8083*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 ecjpake_pw=bla" \ 8084*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 ecjpake_pw=bad \ 8085*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 8086*62c56f98SSadaf Ebrahimi 1 \ 8087*62c56f98SSadaf Ebrahimi -C "re-using cached ecjpake parameters" \ 8088*62c56f98SSadaf Ebrahimi -s "SSL - Verification of the message MAC failed" 8089*62c56f98SSadaf Ebrahimi 8090*62c56f98SSadaf Ebrahimiserver_needs_more_time 1 8091*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 8092*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 8093*62c56f98SSadaf Ebrahimirun_test "ECJPAKE_OPAQUE_PW: opaque password mismatch, TLS" \ 8094*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1" \ 8095*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 ecjpake_pw=bad ecjpake_pw_opaque=1 \ 8096*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 8097*62c56f98SSadaf Ebrahimi 1 \ 8098*62c56f98SSadaf Ebrahimi -c "using opaque password" \ 8099*62c56f98SSadaf Ebrahimi -s "using opaque password" \ 8100*62c56f98SSadaf Ebrahimi -C "re-using cached ecjpake parameters" \ 8101*62c56f98SSadaf Ebrahimi -s "SSL - Verification of the message MAC failed" 8102*62c56f98SSadaf Ebrahimi 8103*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 8104*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: working, DTLS" \ 8105*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 ecjpake_pw=bla" \ 8106*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 ecjpake_pw=bla \ 8107*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 8108*62c56f98SSadaf Ebrahimi 0 \ 8109*62c56f98SSadaf Ebrahimi -c "re-using cached ecjpake parameters" \ 8110*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 8111*62c56f98SSadaf Ebrahimi 8112*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 8113*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: working, DTLS, no cookie" \ 8114*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 ecjpake_pw=bla cookies=0" \ 8115*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 ecjpake_pw=bla \ 8116*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 8117*62c56f98SSadaf Ebrahimi 0 \ 8118*62c56f98SSadaf Ebrahimi -C "re-using cached ecjpake parameters" \ 8119*62c56f98SSadaf Ebrahimi -S "SSL - Verification of the message MAC failed" 8120*62c56f98SSadaf Ebrahimi 8121*62c56f98SSadaf Ebrahimiserver_needs_more_time 1 8122*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 8123*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: password mismatch, DTLS" \ 8124*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 dtls=1 ecjpake_pw=bla" \ 8125*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 ecjpake_pw=bad \ 8126*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 8127*62c56f98SSadaf Ebrahimi 1 \ 8128*62c56f98SSadaf Ebrahimi -c "re-using cached ecjpake parameters" \ 8129*62c56f98SSadaf Ebrahimi -s "SSL - Verification of the message MAC failed" 8130*62c56f98SSadaf Ebrahimi 8131*62c56f98SSadaf Ebrahimi# for tests with configs/config-thread.h 8132*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 8133*62c56f98SSadaf Ebrahimirun_test "ECJPAKE: working, DTLS, nolog" \ 8134*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 ecjpake_pw=bla" \ 8135*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 ecjpake_pw=bla \ 8136*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ 8137*62c56f98SSadaf Ebrahimi 0 8138*62c56f98SSadaf Ebrahimi 8139*62c56f98SSadaf Ebrahimi# Test for ClientHello without extensions 8140*62c56f98SSadaf Ebrahimi 8141*62c56f98SSadaf Ebrahimirequires_gnutls 8142*62c56f98SSadaf Ebrahimirun_test "ClientHello without extensions" \ 8143*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3" \ 8144*62c56f98SSadaf Ebrahimi "$G_CLI --priority=NORMAL:%NO_EXTENSIONS:%DISABLE_SAFE_RENEGOTIATION localhost" \ 8145*62c56f98SSadaf Ebrahimi 0 \ 8146*62c56f98SSadaf Ebrahimi -s "dumping 'client hello extensions' (0 bytes)" 8147*62c56f98SSadaf Ebrahimi 8148*62c56f98SSadaf Ebrahimi# Tests for mbedtls_ssl_get_bytes_avail() 8149*62c56f98SSadaf Ebrahimi 8150*62c56f98SSadaf Ebrahimi# The server first reads buffer_size-1 bytes, then reads the remainder. 8151*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 8152*62c56f98SSadaf Ebrahimirun_test "mbedtls_ssl_get_bytes_avail: no extra data" \ 8153*62c56f98SSadaf Ebrahimi "$P_SRV buffer_size=100" \ 8154*62c56f98SSadaf Ebrahimi "$P_CLI request_size=100" \ 8155*62c56f98SSadaf Ebrahimi 0 \ 8156*62c56f98SSadaf Ebrahimi -s "Read from client: 100 bytes read$" 8157*62c56f98SSadaf Ebrahimi 8158*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 8159*62c56f98SSadaf Ebrahimirun_test "mbedtls_ssl_get_bytes_avail: extra data (+1)" \ 8160*62c56f98SSadaf Ebrahimi "$P_SRV buffer_size=100" \ 8161*62c56f98SSadaf Ebrahimi "$P_CLI request_size=101" \ 8162*62c56f98SSadaf Ebrahimi 0 \ 8163*62c56f98SSadaf Ebrahimi -s "Read from client: 101 bytes read (100 + 1)" 8164*62c56f98SSadaf Ebrahimi 8165*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 8166*62c56f98SSadaf Ebrahimirequires_max_content_len 200 8167*62c56f98SSadaf Ebrahimirun_test "mbedtls_ssl_get_bytes_avail: extra data (*2)" \ 8168*62c56f98SSadaf Ebrahimi "$P_SRV buffer_size=100" \ 8169*62c56f98SSadaf Ebrahimi "$P_CLI request_size=200" \ 8170*62c56f98SSadaf Ebrahimi 0 \ 8171*62c56f98SSadaf Ebrahimi -s "Read from client: 200 bytes read (100 + 100)" 8172*62c56f98SSadaf Ebrahimi 8173*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 8174*62c56f98SSadaf Ebrahimirun_test "mbedtls_ssl_get_bytes_avail: extra data (max)" \ 8175*62c56f98SSadaf Ebrahimi "$P_SRV buffer_size=100" \ 8176*62c56f98SSadaf Ebrahimi "$P_CLI request_size=$MAX_CONTENT_LEN" \ 8177*62c56f98SSadaf Ebrahimi 0 \ 8178*62c56f98SSadaf Ebrahimi -s "Read from client: $MAX_CONTENT_LEN bytes read (100 + $((MAX_CONTENT_LEN - 100)))" 8179*62c56f98SSadaf Ebrahimi 8180*62c56f98SSadaf Ebrahimi# Tests for small client packets 8181*62c56f98SSadaf Ebrahimi 8182*62c56f98SSadaf Ebrahimirun_test "Small client packet TLS 1.2 BlockCipher" \ 8183*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 8184*62c56f98SSadaf Ebrahimi "$P_CLI request_size=1 \ 8185*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA" \ 8186*62c56f98SSadaf Ebrahimi 0 \ 8187*62c56f98SSadaf Ebrahimi -s "Read from client: 1 bytes read" 8188*62c56f98SSadaf Ebrahimi 8189*62c56f98SSadaf Ebrahimirun_test "Small client packet TLS 1.2 BlockCipher, without EtM" \ 8190*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 8191*62c56f98SSadaf Ebrahimi "$P_CLI request_size=1 \ 8192*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA etm=0" \ 8193*62c56f98SSadaf Ebrahimi 0 \ 8194*62c56f98SSadaf Ebrahimi -s "Read from client: 1 bytes read" 8195*62c56f98SSadaf Ebrahimi 8196*62c56f98SSadaf Ebrahimirun_test "Small client packet TLS 1.2 BlockCipher larger MAC" \ 8197*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 8198*62c56f98SSadaf Ebrahimi "$P_CLI request_size=1 \ 8199*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384" \ 8200*62c56f98SSadaf Ebrahimi 0 \ 8201*62c56f98SSadaf Ebrahimi -s "Read from client: 1 bytes read" 8202*62c56f98SSadaf Ebrahimi 8203*62c56f98SSadaf Ebrahimirun_test "Small client packet TLS 1.2 AEAD" \ 8204*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 8205*62c56f98SSadaf Ebrahimi "$P_CLI request_size=1 \ 8206*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CCM" \ 8207*62c56f98SSadaf Ebrahimi 0 \ 8208*62c56f98SSadaf Ebrahimi -s "Read from client: 1 bytes read" 8209*62c56f98SSadaf Ebrahimi 8210*62c56f98SSadaf Ebrahimirun_test "Small client packet TLS 1.2 AEAD shorter tag" \ 8211*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 8212*62c56f98SSadaf Ebrahimi "$P_CLI request_size=1 \ 8213*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CCM-8" \ 8214*62c56f98SSadaf Ebrahimi 0 \ 8215*62c56f98SSadaf Ebrahimi -s "Read from client: 1 bytes read" 8216*62c56f98SSadaf Ebrahimi 8217*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 8218*62c56f98SSadaf Ebrahimirun_test "Small client packet TLS 1.3 AEAD" \ 8219*62c56f98SSadaf Ebrahimi "$P_SRV" \ 8220*62c56f98SSadaf Ebrahimi "$P_CLI request_size=1 \ 8221*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 8222*62c56f98SSadaf Ebrahimi 0 \ 8223*62c56f98SSadaf Ebrahimi -s "Read from client: 1 bytes read" 8224*62c56f98SSadaf Ebrahimi 8225*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 8226*62c56f98SSadaf Ebrahimirun_test "Small client packet TLS 1.3 AEAD shorter tag" \ 8227*62c56f98SSadaf Ebrahimi "$P_SRV" \ 8228*62c56f98SSadaf Ebrahimi "$P_CLI request_size=1 \ 8229*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ 8230*62c56f98SSadaf Ebrahimi 0 \ 8231*62c56f98SSadaf Ebrahimi -s "Read from client: 1 bytes read" 8232*62c56f98SSadaf Ebrahimi 8233*62c56f98SSadaf Ebrahimi# Tests for small client packets in DTLS 8234*62c56f98SSadaf Ebrahimi 8235*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 8236*62c56f98SSadaf Ebrahimirun_test "Small client packet DTLS 1.2" \ 8237*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 force_version=dtls12" \ 8238*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 request_size=1 \ 8239*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA" \ 8240*62c56f98SSadaf Ebrahimi 0 \ 8241*62c56f98SSadaf Ebrahimi -s "Read from client: 1 bytes read" 8242*62c56f98SSadaf Ebrahimi 8243*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 8244*62c56f98SSadaf Ebrahimirun_test "Small client packet DTLS 1.2, without EtM" \ 8245*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 force_version=dtls12 etm=0" \ 8246*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 request_size=1 \ 8247*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA" \ 8248*62c56f98SSadaf Ebrahimi 0 \ 8249*62c56f98SSadaf Ebrahimi -s "Read from client: 1 bytes read" 8250*62c56f98SSadaf Ebrahimi 8251*62c56f98SSadaf Ebrahimi# Tests for small server packets 8252*62c56f98SSadaf Ebrahimi 8253*62c56f98SSadaf Ebrahimirun_test "Small server packet TLS 1.2 BlockCipher" \ 8254*62c56f98SSadaf Ebrahimi "$P_SRV response_size=1 force_version=tls12" \ 8255*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA" \ 8256*62c56f98SSadaf Ebrahimi 0 \ 8257*62c56f98SSadaf Ebrahimi -c "Read from server: 1 bytes read" 8258*62c56f98SSadaf Ebrahimi 8259*62c56f98SSadaf Ebrahimirun_test "Small server packet TLS 1.2 BlockCipher, without EtM" \ 8260*62c56f98SSadaf Ebrahimi "$P_SRV response_size=1 force_version=tls12" \ 8261*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA etm=0" \ 8262*62c56f98SSadaf Ebrahimi 0 \ 8263*62c56f98SSadaf Ebrahimi -c "Read from server: 1 bytes read" 8264*62c56f98SSadaf Ebrahimi 8265*62c56f98SSadaf Ebrahimirun_test "Small server packet TLS 1.2 BlockCipher larger MAC" \ 8266*62c56f98SSadaf Ebrahimi "$P_SRV response_size=1 force_version=tls12" \ 8267*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384" \ 8268*62c56f98SSadaf Ebrahimi 0 \ 8269*62c56f98SSadaf Ebrahimi -c "Read from server: 1 bytes read" 8270*62c56f98SSadaf Ebrahimi 8271*62c56f98SSadaf Ebrahimirun_test "Small server packet TLS 1.2 AEAD" \ 8272*62c56f98SSadaf Ebrahimi "$P_SRV response_size=1 force_version=tls12" \ 8273*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-256-CCM" \ 8274*62c56f98SSadaf Ebrahimi 0 \ 8275*62c56f98SSadaf Ebrahimi -c "Read from server: 1 bytes read" 8276*62c56f98SSadaf Ebrahimi 8277*62c56f98SSadaf Ebrahimirun_test "Small server packet TLS 1.2 AEAD shorter tag" \ 8278*62c56f98SSadaf Ebrahimi "$P_SRV response_size=1 force_version=tls12" \ 8279*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-256-CCM-8" \ 8280*62c56f98SSadaf Ebrahimi 0 \ 8281*62c56f98SSadaf Ebrahimi -c "Read from server: 1 bytes read" 8282*62c56f98SSadaf Ebrahimi 8283*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 8284*62c56f98SSadaf Ebrahimirun_test "Small server packet TLS 1.3 AEAD" \ 8285*62c56f98SSadaf Ebrahimi "$P_SRV response_size=1" \ 8286*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 8287*62c56f98SSadaf Ebrahimi 0 \ 8288*62c56f98SSadaf Ebrahimi -c "Read from server: 1 bytes read" 8289*62c56f98SSadaf Ebrahimi 8290*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 8291*62c56f98SSadaf Ebrahimirun_test "Small server packet TLS 1.3 AEAD shorter tag" \ 8292*62c56f98SSadaf Ebrahimi "$P_SRV response_size=1" \ 8293*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ 8294*62c56f98SSadaf Ebrahimi 0 \ 8295*62c56f98SSadaf Ebrahimi -c "Read from server: 1 bytes read" 8296*62c56f98SSadaf Ebrahimi 8297*62c56f98SSadaf Ebrahimi# Tests for small server packets in DTLS 8298*62c56f98SSadaf Ebrahimi 8299*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 8300*62c56f98SSadaf Ebrahimirun_test "Small server packet DTLS 1.2" \ 8301*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 response_size=1 force_version=dtls12" \ 8302*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 \ 8303*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA" \ 8304*62c56f98SSadaf Ebrahimi 0 \ 8305*62c56f98SSadaf Ebrahimi -c "Read from server: 1 bytes read" 8306*62c56f98SSadaf Ebrahimi 8307*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 8308*62c56f98SSadaf Ebrahimirun_test "Small server packet DTLS 1.2, without EtM" \ 8309*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 response_size=1 force_version=dtls12 etm=0" \ 8310*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 \ 8311*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA" \ 8312*62c56f98SSadaf Ebrahimi 0 \ 8313*62c56f98SSadaf Ebrahimi -c "Read from server: 1 bytes read" 8314*62c56f98SSadaf Ebrahimi 8315*62c56f98SSadaf Ebrahimi# Test for large client packets 8316*62c56f98SSadaf Ebrahimi 8317*62c56f98SSadaf Ebrahimi# How many fragments do we expect to write $1 bytes? 8318*62c56f98SSadaf Ebrahimifragments_for_write() { 8319*62c56f98SSadaf Ebrahimi echo "$(( ( $1 + $MAX_OUT_LEN - 1 ) / $MAX_OUT_LEN ))" 8320*62c56f98SSadaf Ebrahimi} 8321*62c56f98SSadaf Ebrahimi 8322*62c56f98SSadaf Ebrahimirun_test "Large client packet TLS 1.2 BlockCipher" \ 8323*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 8324*62c56f98SSadaf Ebrahimi "$P_CLI request_size=16384 \ 8325*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA" \ 8326*62c56f98SSadaf Ebrahimi 0 \ 8327*62c56f98SSadaf Ebrahimi -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ 8328*62c56f98SSadaf Ebrahimi -s "Read from client: $MAX_CONTENT_LEN bytes read" 8329*62c56f98SSadaf Ebrahimi 8330*62c56f98SSadaf Ebrahimirun_test "Large client packet TLS 1.2 BlockCipher, without EtM" \ 8331*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 8332*62c56f98SSadaf Ebrahimi "$P_CLI request_size=16384 etm=0 \ 8333*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA" \ 8334*62c56f98SSadaf Ebrahimi 0 \ 8335*62c56f98SSadaf Ebrahimi -s "Read from client: $MAX_CONTENT_LEN bytes read" 8336*62c56f98SSadaf Ebrahimi 8337*62c56f98SSadaf Ebrahimirun_test "Large client packet TLS 1.2 BlockCipher larger MAC" \ 8338*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 8339*62c56f98SSadaf Ebrahimi "$P_CLI request_size=16384 \ 8340*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384" \ 8341*62c56f98SSadaf Ebrahimi 0 \ 8342*62c56f98SSadaf Ebrahimi -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ 8343*62c56f98SSadaf Ebrahimi -s "Read from client: $MAX_CONTENT_LEN bytes read" 8344*62c56f98SSadaf Ebrahimi 8345*62c56f98SSadaf Ebrahimirun_test "Large client packet TLS 1.2 AEAD" \ 8346*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 8347*62c56f98SSadaf Ebrahimi "$P_CLI request_size=16384 \ 8348*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CCM" \ 8349*62c56f98SSadaf Ebrahimi 0 \ 8350*62c56f98SSadaf Ebrahimi -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ 8351*62c56f98SSadaf Ebrahimi -s "Read from client: $MAX_CONTENT_LEN bytes read" 8352*62c56f98SSadaf Ebrahimi 8353*62c56f98SSadaf Ebrahimirun_test "Large client packet TLS 1.2 AEAD shorter tag" \ 8354*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12" \ 8355*62c56f98SSadaf Ebrahimi "$P_CLI request_size=16384 \ 8356*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-256-CCM-8" \ 8357*62c56f98SSadaf Ebrahimi 0 \ 8358*62c56f98SSadaf Ebrahimi -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ 8359*62c56f98SSadaf Ebrahimi -s "Read from client: $MAX_CONTENT_LEN bytes read" 8360*62c56f98SSadaf Ebrahimi 8361*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 8362*62c56f98SSadaf Ebrahimirun_test "Large client packet TLS 1.3 AEAD" \ 8363*62c56f98SSadaf Ebrahimi "$P_SRV" \ 8364*62c56f98SSadaf Ebrahimi "$P_CLI request_size=16384 \ 8365*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 8366*62c56f98SSadaf Ebrahimi 0 \ 8367*62c56f98SSadaf Ebrahimi -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ 8368*62c56f98SSadaf Ebrahimi -s "Read from client: $MAX_CONTENT_LEN bytes read" 8369*62c56f98SSadaf Ebrahimi 8370*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 8371*62c56f98SSadaf Ebrahimirun_test "Large client packet TLS 1.3 AEAD shorter tag" \ 8372*62c56f98SSadaf Ebrahimi "$P_SRV" \ 8373*62c56f98SSadaf Ebrahimi "$P_CLI request_size=16384 \ 8374*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ 8375*62c56f98SSadaf Ebrahimi 0 \ 8376*62c56f98SSadaf Ebrahimi -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ 8377*62c56f98SSadaf Ebrahimi -s "Read from client: $MAX_CONTENT_LEN bytes read" 8378*62c56f98SSadaf Ebrahimi 8379*62c56f98SSadaf Ebrahimi# The tests below fail when the server's OUT_CONTENT_LEN is less than 16384. 8380*62c56f98SSadaf Ebrahimirun_test "Large server packet TLS 1.2 BlockCipher" \ 8381*62c56f98SSadaf Ebrahimi "$P_SRV response_size=16384 force_version=tls12" \ 8382*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA" \ 8383*62c56f98SSadaf Ebrahimi 0 \ 8384*62c56f98SSadaf Ebrahimi -c "Read from server: 16384 bytes read" 8385*62c56f98SSadaf Ebrahimi 8386*62c56f98SSadaf Ebrahimirun_test "Large server packet TLS 1.2 BlockCipher, without EtM" \ 8387*62c56f98SSadaf Ebrahimi "$P_SRV response_size=16384 force_version=tls12" \ 8388*62c56f98SSadaf Ebrahimi "$P_CLI etm=0 force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA" \ 8389*62c56f98SSadaf Ebrahimi 0 \ 8390*62c56f98SSadaf Ebrahimi -s "16384 bytes written in 1 fragments" \ 8391*62c56f98SSadaf Ebrahimi -c "Read from server: 16384 bytes read" 8392*62c56f98SSadaf Ebrahimi 8393*62c56f98SSadaf Ebrahimirun_test "Large server packet TLS 1.2 BlockCipher larger MAC" \ 8394*62c56f98SSadaf Ebrahimi "$P_SRV response_size=16384 force_version=tls12" \ 8395*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384" \ 8396*62c56f98SSadaf Ebrahimi 0 \ 8397*62c56f98SSadaf Ebrahimi -c "Read from server: 16384 bytes read" 8398*62c56f98SSadaf Ebrahimi 8399*62c56f98SSadaf Ebrahimirun_test "Large server packet TLS 1.2 BlockCipher, without EtM, truncated MAC" \ 8400*62c56f98SSadaf Ebrahimi "$P_SRV response_size=16384 trunc_hmac=1 force_version=tls12" \ 8401*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA trunc_hmac=1 etm=0" \ 8402*62c56f98SSadaf Ebrahimi 0 \ 8403*62c56f98SSadaf Ebrahimi -s "16384 bytes written in 1 fragments" \ 8404*62c56f98SSadaf Ebrahimi -c "Read from server: 16384 bytes read" 8405*62c56f98SSadaf Ebrahimi 8406*62c56f98SSadaf Ebrahimirun_test "Large server packet TLS 1.2 AEAD" \ 8407*62c56f98SSadaf Ebrahimi "$P_SRV response_size=16384 force_version=tls12" \ 8408*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-256-CCM" \ 8409*62c56f98SSadaf Ebrahimi 0 \ 8410*62c56f98SSadaf Ebrahimi -c "Read from server: 16384 bytes read" 8411*62c56f98SSadaf Ebrahimi 8412*62c56f98SSadaf Ebrahimirun_test "Large server packet TLS 1.2 AEAD shorter tag" \ 8413*62c56f98SSadaf Ebrahimi "$P_SRV response_size=16384 force_version=tls12" \ 8414*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-256-CCM-8" \ 8415*62c56f98SSadaf Ebrahimi 0 \ 8416*62c56f98SSadaf Ebrahimi -c "Read from server: 16384 bytes read" 8417*62c56f98SSadaf Ebrahimi 8418*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 8419*62c56f98SSadaf Ebrahimirun_test "Large server packet TLS 1.3 AEAD" \ 8420*62c56f98SSadaf Ebrahimi "$P_SRV response_size=16384" \ 8421*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 8422*62c56f98SSadaf Ebrahimi 0 \ 8423*62c56f98SSadaf Ebrahimi -c "Read from server: 16384 bytes read" 8424*62c56f98SSadaf Ebrahimi 8425*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 8426*62c56f98SSadaf Ebrahimirun_test "Large server packet TLS 1.3 AEAD shorter tag" \ 8427*62c56f98SSadaf Ebrahimi "$P_SRV response_size=16384" \ 8428*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ 8429*62c56f98SSadaf Ebrahimi 0 \ 8430*62c56f98SSadaf Ebrahimi -c "Read from server: 16384 bytes read" 8431*62c56f98SSadaf Ebrahimi 8432*62c56f98SSadaf Ebrahimi# Tests for restartable ECC 8433*62c56f98SSadaf Ebrahimi 8434*62c56f98SSadaf Ebrahimi# Force the use of a curve that supports restartable ECC (secp256r1). 8435*62c56f98SSadaf Ebrahimi 8436*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8437*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8438*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, default" \ 8439*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required" \ 8440*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8441*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8442*62c56f98SSadaf Ebrahimi debug_level=1" \ 8443*62c56f98SSadaf Ebrahimi 0 \ 8444*62c56f98SSadaf Ebrahimi -C "x509_verify_cert.*4b00" \ 8445*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_verify.*4b00" \ 8446*62c56f98SSadaf Ebrahimi -C "mbedtls_ecdh_make_public.*4b00" \ 8447*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_sign.*4b00" 8448*62c56f98SSadaf Ebrahimi 8449*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8450*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8451*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=0" \ 8452*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required" \ 8453*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8454*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8455*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=0" \ 8456*62c56f98SSadaf Ebrahimi 0 \ 8457*62c56f98SSadaf Ebrahimi -C "x509_verify_cert.*4b00" \ 8458*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_verify.*4b00" \ 8459*62c56f98SSadaf Ebrahimi -C "mbedtls_ecdh_make_public.*4b00" \ 8460*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_sign.*4b00" 8461*62c56f98SSadaf Ebrahimi 8462*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8463*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8464*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=65535" \ 8465*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required" \ 8466*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8467*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8468*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=65535" \ 8469*62c56f98SSadaf Ebrahimi 0 \ 8470*62c56f98SSadaf Ebrahimi -C "x509_verify_cert.*4b00" \ 8471*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_verify.*4b00" \ 8472*62c56f98SSadaf Ebrahimi -C "mbedtls_ecdh_make_public.*4b00" \ 8473*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_sign.*4b00" 8474*62c56f98SSadaf Ebrahimi 8475*62c56f98SSadaf Ebrahimi# With USE_PSA disabled we expect full restartable behaviour. 8476*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8477*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8478*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_USE_PSA_CRYPTO 8479*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=1000 (no USE_PSA)" \ 8480*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required" \ 8481*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8482*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8483*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=1000" \ 8484*62c56f98SSadaf Ebrahimi 0 \ 8485*62c56f98SSadaf Ebrahimi -c "x509_verify_cert.*4b00" \ 8486*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_verify.*4b00" \ 8487*62c56f98SSadaf Ebrahimi -c "mbedtls_ecdh_make_public.*4b00" \ 8488*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_sign.*4b00" 8489*62c56f98SSadaf Ebrahimi 8490*62c56f98SSadaf Ebrahimi# With USE_PSA enabled we expect only partial restartable behaviour: 8491*62c56f98SSadaf Ebrahimi# everything except ECDH (where TLS calls PSA directly). 8492*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8493*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8494*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 8495*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=1000 (USE_PSA)" \ 8496*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required" \ 8497*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8498*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8499*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=1000" \ 8500*62c56f98SSadaf Ebrahimi 0 \ 8501*62c56f98SSadaf Ebrahimi -c "x509_verify_cert.*4b00" \ 8502*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_verify.*4b00" \ 8503*62c56f98SSadaf Ebrahimi -C "mbedtls_ecdh_make_public.*4b00" \ 8504*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_sign.*4b00" 8505*62c56f98SSadaf Ebrahimi 8506*62c56f98SSadaf Ebrahimi# This works the same with & without USE_PSA as we never get to ECDH: 8507*62c56f98SSadaf Ebrahimi# we abort as soon as we determined the cert is bad. 8508*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8509*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8510*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=1000, badsign" \ 8511*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required \ 8512*62c56f98SSadaf Ebrahimi crt_file=data_files/server5-badsign.crt \ 8513*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 8514*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8515*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8516*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=1000" \ 8517*62c56f98SSadaf Ebrahimi 1 \ 8518*62c56f98SSadaf Ebrahimi -c "x509_verify_cert.*4b00" \ 8519*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_verify.*4b00" \ 8520*62c56f98SSadaf Ebrahimi -C "mbedtls_ecdh_make_public.*4b00" \ 8521*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_sign.*4b00" \ 8522*62c56f98SSadaf Ebrahimi -c "! The certificate is not correctly signed by the trusted CA" \ 8523*62c56f98SSadaf Ebrahimi -c "! mbedtls_ssl_handshake returned" \ 8524*62c56f98SSadaf Ebrahimi -c "X509 - Certificate verification failed" 8525*62c56f98SSadaf Ebrahimi 8526*62c56f98SSadaf Ebrahimi# With USE_PSA disabled we expect full restartable behaviour. 8527*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8528*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8529*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_USE_PSA_CRYPTO 8530*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=1000, auth_mode=optional badsign (no USE_PSA)" \ 8531*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required \ 8532*62c56f98SSadaf Ebrahimi crt_file=data_files/server5-badsign.crt \ 8533*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 8534*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8535*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8536*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=1000 auth_mode=optional" \ 8537*62c56f98SSadaf Ebrahimi 0 \ 8538*62c56f98SSadaf Ebrahimi -c "x509_verify_cert.*4b00" \ 8539*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_verify.*4b00" \ 8540*62c56f98SSadaf Ebrahimi -c "mbedtls_ecdh_make_public.*4b00" \ 8541*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_sign.*4b00" \ 8542*62c56f98SSadaf Ebrahimi -c "! The certificate is not correctly signed by the trusted CA" \ 8543*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 8544*62c56f98SSadaf Ebrahimi -C "X509 - Certificate verification failed" 8545*62c56f98SSadaf Ebrahimi 8546*62c56f98SSadaf Ebrahimi# With USE_PSA enabled we expect only partial restartable behaviour: 8547*62c56f98SSadaf Ebrahimi# everything except ECDH (where TLS calls PSA directly). 8548*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8549*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8550*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 8551*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=1000, auth_mode=optional badsign (USE_PSA)" \ 8552*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required \ 8553*62c56f98SSadaf Ebrahimi crt_file=data_files/server5-badsign.crt \ 8554*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 8555*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8556*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8557*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=1000 auth_mode=optional" \ 8558*62c56f98SSadaf Ebrahimi 0 \ 8559*62c56f98SSadaf Ebrahimi -c "x509_verify_cert.*4b00" \ 8560*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_verify.*4b00" \ 8561*62c56f98SSadaf Ebrahimi -C "mbedtls_ecdh_make_public.*4b00" \ 8562*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_sign.*4b00" \ 8563*62c56f98SSadaf Ebrahimi -c "! The certificate is not correctly signed by the trusted CA" \ 8564*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 8565*62c56f98SSadaf Ebrahimi -C "X509 - Certificate verification failed" 8566*62c56f98SSadaf Ebrahimi 8567*62c56f98SSadaf Ebrahimi# With USE_PSA disabled we expect full restartable behaviour. 8568*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8569*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8570*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_USE_PSA_CRYPTO 8571*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=1000, auth_mode=none badsign (no USE_PSA)" \ 8572*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required \ 8573*62c56f98SSadaf Ebrahimi crt_file=data_files/server5-badsign.crt \ 8574*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 8575*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8576*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8577*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=1000 auth_mode=none" \ 8578*62c56f98SSadaf Ebrahimi 0 \ 8579*62c56f98SSadaf Ebrahimi -C "x509_verify_cert.*4b00" \ 8580*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_verify.*4b00" \ 8581*62c56f98SSadaf Ebrahimi -c "mbedtls_ecdh_make_public.*4b00" \ 8582*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_sign.*4b00" \ 8583*62c56f98SSadaf Ebrahimi -C "! The certificate is not correctly signed by the trusted CA" \ 8584*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 8585*62c56f98SSadaf Ebrahimi -C "X509 - Certificate verification failed" 8586*62c56f98SSadaf Ebrahimi 8587*62c56f98SSadaf Ebrahimi# With USE_PSA enabled we expect only partial restartable behaviour: 8588*62c56f98SSadaf Ebrahimi# everything except ECDH (where TLS calls PSA directly). 8589*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8590*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8591*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 8592*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=1000, auth_mode=none badsign (USE_PSA)" \ 8593*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required \ 8594*62c56f98SSadaf Ebrahimi crt_file=data_files/server5-badsign.crt \ 8595*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key" \ 8596*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8597*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8598*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=1000 auth_mode=none" \ 8599*62c56f98SSadaf Ebrahimi 0 \ 8600*62c56f98SSadaf Ebrahimi -C "x509_verify_cert.*4b00" \ 8601*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_verify.*4b00" \ 8602*62c56f98SSadaf Ebrahimi -C "mbedtls_ecdh_make_public.*4b00" \ 8603*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_sign.*4b00" \ 8604*62c56f98SSadaf Ebrahimi -C "! The certificate is not correctly signed by the trusted CA" \ 8605*62c56f98SSadaf Ebrahimi -C "! mbedtls_ssl_handshake returned" \ 8606*62c56f98SSadaf Ebrahimi -C "X509 - Certificate verification failed" 8607*62c56f98SSadaf Ebrahimi 8608*62c56f98SSadaf Ebrahimi# With USE_PSA disabled we expect full restartable behaviour. 8609*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8610*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8611*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_USE_PSA_CRYPTO 8612*62c56f98SSadaf Ebrahimirun_test "EC restart: DTLS, max_ops=1000 (no USE_PSA)" \ 8613*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required dtls=1" \ 8614*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8615*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8616*62c56f98SSadaf Ebrahimi dtls=1 debug_level=1 ec_max_ops=1000" \ 8617*62c56f98SSadaf Ebrahimi 0 \ 8618*62c56f98SSadaf Ebrahimi -c "x509_verify_cert.*4b00" \ 8619*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_verify.*4b00" \ 8620*62c56f98SSadaf Ebrahimi -c "mbedtls_ecdh_make_public.*4b00" \ 8621*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_sign.*4b00" 8622*62c56f98SSadaf Ebrahimi 8623*62c56f98SSadaf Ebrahimi# With USE_PSA enabled we expect only partial restartable behaviour: 8624*62c56f98SSadaf Ebrahimi# everything except ECDH (where TLS calls PSA directly). 8625*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8626*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8627*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 8628*62c56f98SSadaf Ebrahimirun_test "EC restart: DTLS, max_ops=1000 (USE_PSA)" \ 8629*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required dtls=1" \ 8630*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8631*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8632*62c56f98SSadaf Ebrahimi dtls=1 debug_level=1 ec_max_ops=1000" \ 8633*62c56f98SSadaf Ebrahimi 0 \ 8634*62c56f98SSadaf Ebrahimi -c "x509_verify_cert.*4b00" \ 8635*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_verify.*4b00" \ 8636*62c56f98SSadaf Ebrahimi -C "mbedtls_ecdh_make_public.*4b00" \ 8637*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_sign.*4b00" 8638*62c56f98SSadaf Ebrahimi 8639*62c56f98SSadaf Ebrahimi# With USE_PSA disabled we expect full restartable behaviour. 8640*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8641*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8642*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_USE_PSA_CRYPTO 8643*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=1000 no client auth (no USE_PSA)" \ 8644*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1" \ 8645*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8646*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=1000" \ 8647*62c56f98SSadaf Ebrahimi 0 \ 8648*62c56f98SSadaf Ebrahimi -c "x509_verify_cert.*4b00" \ 8649*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_verify.*4b00" \ 8650*62c56f98SSadaf Ebrahimi -c "mbedtls_ecdh_make_public.*4b00" \ 8651*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_sign.*4b00" 8652*62c56f98SSadaf Ebrahimi 8653*62c56f98SSadaf Ebrahimi 8654*62c56f98SSadaf Ebrahimi# With USE_PSA enabled we expect only partial restartable behaviour: 8655*62c56f98SSadaf Ebrahimi# everything except ECDH (where TLS calls PSA directly). 8656*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8657*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8658*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 8659*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=1000 no client auth (USE_PSA)" \ 8660*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1" \ 8661*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 8662*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=1000" \ 8663*62c56f98SSadaf Ebrahimi 0 \ 8664*62c56f98SSadaf Ebrahimi -c "x509_verify_cert.*4b00" \ 8665*62c56f98SSadaf Ebrahimi -c "mbedtls_pk_verify.*4b00" \ 8666*62c56f98SSadaf Ebrahimi -C "mbedtls_ecdh_make_public.*4b00" \ 8667*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_sign.*4b00" 8668*62c56f98SSadaf Ebrahimi 8669*62c56f98SSadaf Ebrahimi# Restartable is only for ECDHE-ECDSA, with another ciphersuite we expect no 8670*62c56f98SSadaf Ebrahimi# restartable behaviour at all (not even client auth). 8671*62c56f98SSadaf Ebrahimi# This is the same as "EC restart: TLS, max_ops=1000" except with ECDHE-RSA, 8672*62c56f98SSadaf Ebrahimi# and all 4 assertions negated. 8673*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_RESTARTABLE 8674*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED 8675*62c56f98SSadaf Ebrahimirun_test "EC restart: TLS, max_ops=1000, ECDHE-RSA" \ 8676*62c56f98SSadaf Ebrahimi "$P_SRV groups=secp256r1 auth_mode=required" \ 8677*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 \ 8678*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8679*62c56f98SSadaf Ebrahimi debug_level=1 ec_max_ops=1000" \ 8680*62c56f98SSadaf Ebrahimi 0 \ 8681*62c56f98SSadaf Ebrahimi -C "x509_verify_cert.*4b00" \ 8682*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_verify.*4b00" \ 8683*62c56f98SSadaf Ebrahimi -C "mbedtls_ecdh_make_public.*4b00" \ 8684*62c56f98SSadaf Ebrahimi -C "mbedtls_pk_sign.*4b00" 8685*62c56f98SSadaf Ebrahimi 8686*62c56f98SSadaf Ebrahimi# Tests of asynchronous private key support in SSL 8687*62c56f98SSadaf Ebrahimi 8688*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8689*62c56f98SSadaf Ebrahimirun_test "SSL async private: sign, delay=0" \ 8690*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 \ 8691*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=0 async_private_delay2=0" \ 8692*62c56f98SSadaf Ebrahimi "$P_CLI" \ 8693*62c56f98SSadaf Ebrahimi 0 \ 8694*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot " \ 8695*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): sign done, status=0" 8696*62c56f98SSadaf Ebrahimi 8697*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8698*62c56f98SSadaf Ebrahimirun_test "SSL async private: sign, delay=1" \ 8699*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 \ 8700*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_delay2=1" \ 8701*62c56f98SSadaf Ebrahimi "$P_CLI" \ 8702*62c56f98SSadaf Ebrahimi 0 \ 8703*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot " \ 8704*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): call 0 more times." \ 8705*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): sign done, status=0" 8706*62c56f98SSadaf Ebrahimi 8707*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8708*62c56f98SSadaf Ebrahimirun_test "SSL async private: sign, delay=2" \ 8709*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 \ 8710*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=2 async_private_delay2=2" \ 8711*62c56f98SSadaf Ebrahimi "$P_CLI" \ 8712*62c56f98SSadaf Ebrahimi 0 \ 8713*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot " \ 8714*62c56f98SSadaf Ebrahimi -U "Async sign callback: using key slot " \ 8715*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): call 1 more times." \ 8716*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): call 0 more times." \ 8717*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): sign done, status=0" 8718*62c56f98SSadaf Ebrahimi 8719*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8720*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_X509_REMOVE_INFO 8721*62c56f98SSadaf Ebrahimirun_test "SSL async private: sign, SNI" \ 8722*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 debug_level=3 \ 8723*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=0 async_private_delay2=0 \ 8724*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key \ 8725*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 8726*62c56f98SSadaf Ebrahimi "$P_CLI server_name=polarssl.example" \ 8727*62c56f98SSadaf Ebrahimi 0 \ 8728*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot " \ 8729*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): sign done, status=0" \ 8730*62c56f98SSadaf Ebrahimi -s "parse ServerName extension" \ 8731*62c56f98SSadaf Ebrahimi -c "issuer name *: C=NL, O=PolarSSL, CN=PolarSSL Test CA" \ 8732*62c56f98SSadaf Ebrahimi -c "subject name *: C=NL, O=PolarSSL, CN=polarssl.example" 8733*62c56f98SSadaf Ebrahimi 8734*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8735*62c56f98SSadaf Ebrahimirun_test "SSL async private: decrypt, delay=0" \ 8736*62c56f98SSadaf Ebrahimi "$P_SRV \ 8737*62c56f98SSadaf Ebrahimi async_operations=d async_private_delay1=0 async_private_delay2=0" \ 8738*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 8739*62c56f98SSadaf Ebrahimi 0 \ 8740*62c56f98SSadaf Ebrahimi -s "Async decrypt callback: using key slot " \ 8741*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): decrypt done, status=0" 8742*62c56f98SSadaf Ebrahimi 8743*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8744*62c56f98SSadaf Ebrahimirun_test "SSL async private: decrypt, delay=1" \ 8745*62c56f98SSadaf Ebrahimi "$P_SRV \ 8746*62c56f98SSadaf Ebrahimi async_operations=d async_private_delay1=1 async_private_delay2=1" \ 8747*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 8748*62c56f98SSadaf Ebrahimi 0 \ 8749*62c56f98SSadaf Ebrahimi -s "Async decrypt callback: using key slot " \ 8750*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): call 0 more times." \ 8751*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): decrypt done, status=0" 8752*62c56f98SSadaf Ebrahimi 8753*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8754*62c56f98SSadaf Ebrahimirun_test "SSL async private: decrypt RSA-PSK, delay=0" \ 8755*62c56f98SSadaf Ebrahimi "$P_SRV psk=abc123 \ 8756*62c56f98SSadaf Ebrahimi async_operations=d async_private_delay1=0 async_private_delay2=0" \ 8757*62c56f98SSadaf Ebrahimi "$P_CLI psk=abc123 \ 8758*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA256" \ 8759*62c56f98SSadaf Ebrahimi 0 \ 8760*62c56f98SSadaf Ebrahimi -s "Async decrypt callback: using key slot " \ 8761*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): decrypt done, status=0" 8762*62c56f98SSadaf Ebrahimi 8763*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8764*62c56f98SSadaf Ebrahimirun_test "SSL async private: decrypt RSA-PSK, delay=1" \ 8765*62c56f98SSadaf Ebrahimi "$P_SRV psk=abc123 \ 8766*62c56f98SSadaf Ebrahimi async_operations=d async_private_delay1=1 async_private_delay2=1" \ 8767*62c56f98SSadaf Ebrahimi "$P_CLI psk=abc123 \ 8768*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-PSK-WITH-AES-128-CBC-SHA256" \ 8769*62c56f98SSadaf Ebrahimi 0 \ 8770*62c56f98SSadaf Ebrahimi -s "Async decrypt callback: using key slot " \ 8771*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): call 0 more times." \ 8772*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): decrypt done, status=0" 8773*62c56f98SSadaf Ebrahimi 8774*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8775*62c56f98SSadaf Ebrahimirun_test "SSL async private: sign callback not present" \ 8776*62c56f98SSadaf Ebrahimi "$P_SRV \ 8777*62c56f98SSadaf Ebrahimi async_operations=d async_private_delay1=1 async_private_delay2=1" \ 8778*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12; [ \$? -eq 1 ] && 8779*62c56f98SSadaf Ebrahimi $P_CLI force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 8780*62c56f98SSadaf Ebrahimi 0 \ 8781*62c56f98SSadaf Ebrahimi -S "Async sign callback" \ 8782*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 8783*62c56f98SSadaf Ebrahimi -s "The own private key or pre-shared key is not set, but needed" \ 8784*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): decrypt done, status=0" \ 8785*62c56f98SSadaf Ebrahimi -s "Successful connection" 8786*62c56f98SSadaf Ebrahimi 8787*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8788*62c56f98SSadaf Ebrahimirun_test "SSL async private: decrypt callback not present" \ 8789*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=1 \ 8790*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_delay2=1" \ 8791*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA; 8792*62c56f98SSadaf Ebrahimi [ \$? -eq 1 ] && $P_CLI force_version=tls12" \ 8793*62c56f98SSadaf Ebrahimi 0 \ 8794*62c56f98SSadaf Ebrahimi -S "Async decrypt callback" \ 8795*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 8796*62c56f98SSadaf Ebrahimi -s "got no RSA private key" \ 8797*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): sign done, status=0" \ 8798*62c56f98SSadaf Ebrahimi -s "Successful connection" 8799*62c56f98SSadaf Ebrahimi 8800*62c56f98SSadaf Ebrahimi# key1: ECDSA, key2: RSA; use key1 from slot 0 8801*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8802*62c56f98SSadaf Ebrahimirun_test "SSL async private: slot 0 used with key1" \ 8803*62c56f98SSadaf Ebrahimi "$P_SRV \ 8804*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 \ 8805*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8806*62c56f98SSadaf Ebrahimi key_file2=data_files/server2.key crt_file2=data_files/server2.crt" \ 8807*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256" \ 8808*62c56f98SSadaf Ebrahimi 0 \ 8809*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot 0," \ 8810*62c56f98SSadaf Ebrahimi -s "Async resume (slot 0): call 0 more times." \ 8811*62c56f98SSadaf Ebrahimi -s "Async resume (slot 0): sign done, status=0" 8812*62c56f98SSadaf Ebrahimi 8813*62c56f98SSadaf Ebrahimi# key1: ECDSA, key2: RSA; use key2 from slot 0 8814*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8815*62c56f98SSadaf Ebrahimirun_test "SSL async private: slot 0 used with key2" \ 8816*62c56f98SSadaf Ebrahimi "$P_SRV \ 8817*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay2=1 \ 8818*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8819*62c56f98SSadaf Ebrahimi key_file2=data_files/server2.key crt_file2=data_files/server2.crt" \ 8820*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256" \ 8821*62c56f98SSadaf Ebrahimi 0 \ 8822*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot 0," \ 8823*62c56f98SSadaf Ebrahimi -s "Async resume (slot 0): call 0 more times." \ 8824*62c56f98SSadaf Ebrahimi -s "Async resume (slot 0): sign done, status=0" 8825*62c56f98SSadaf Ebrahimi 8826*62c56f98SSadaf Ebrahimi# key1: ECDSA, key2: RSA; use key2 from slot 1 8827*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8828*62c56f98SSadaf Ebrahimirun_test "SSL async private: slot 1 used with key2" \ 8829*62c56f98SSadaf Ebrahimi "$P_SRV \ 8830*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_delay2=1 \ 8831*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8832*62c56f98SSadaf Ebrahimi key_file2=data_files/server2.key crt_file2=data_files/server2.crt" \ 8833*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256" \ 8834*62c56f98SSadaf Ebrahimi 0 \ 8835*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot 1," \ 8836*62c56f98SSadaf Ebrahimi -s "Async resume (slot 1): call 0 more times." \ 8837*62c56f98SSadaf Ebrahimi -s "Async resume (slot 1): sign done, status=0" 8838*62c56f98SSadaf Ebrahimi 8839*62c56f98SSadaf Ebrahimi# key1: ECDSA, key2: RSA; use key2 directly 8840*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8841*62c56f98SSadaf Ebrahimirun_test "SSL async private: fall back to transparent key" \ 8842*62c56f98SSadaf Ebrahimi "$P_SRV \ 8843*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 \ 8844*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8845*62c56f98SSadaf Ebrahimi key_file2=data_files/server2.key crt_file2=data_files/server2.crt " \ 8846*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256" \ 8847*62c56f98SSadaf Ebrahimi 0 \ 8848*62c56f98SSadaf Ebrahimi -s "Async sign callback: no key matches this certificate." 8849*62c56f98SSadaf Ebrahimi 8850*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8851*62c56f98SSadaf Ebrahimirun_test "SSL async private: sign, error in start" \ 8852*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 \ 8853*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_delay2=1 \ 8854*62c56f98SSadaf Ebrahimi async_private_error=1" \ 8855*62c56f98SSadaf Ebrahimi "$P_CLI" \ 8856*62c56f98SSadaf Ebrahimi 1 \ 8857*62c56f98SSadaf Ebrahimi -s "Async sign callback: injected error" \ 8858*62c56f98SSadaf Ebrahimi -S "Async resume" \ 8859*62c56f98SSadaf Ebrahimi -S "Async cancel" \ 8860*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" 8861*62c56f98SSadaf Ebrahimi 8862*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8863*62c56f98SSadaf Ebrahimirun_test "SSL async private: sign, cancel after start" \ 8864*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 \ 8865*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_delay2=1 \ 8866*62c56f98SSadaf Ebrahimi async_private_error=2" \ 8867*62c56f98SSadaf Ebrahimi "$P_CLI" \ 8868*62c56f98SSadaf Ebrahimi 1 \ 8869*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot " \ 8870*62c56f98SSadaf Ebrahimi -S "Async resume" \ 8871*62c56f98SSadaf Ebrahimi -s "Async cancel" 8872*62c56f98SSadaf Ebrahimi 8873*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8874*62c56f98SSadaf Ebrahimirun_test "SSL async private: sign, error in resume" \ 8875*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 \ 8876*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_delay2=1 \ 8877*62c56f98SSadaf Ebrahimi async_private_error=3" \ 8878*62c56f98SSadaf Ebrahimi "$P_CLI" \ 8879*62c56f98SSadaf Ebrahimi 1 \ 8880*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot " \ 8881*62c56f98SSadaf Ebrahimi -s "Async resume callback: sign done but injected error" \ 8882*62c56f98SSadaf Ebrahimi -S "Async cancel" \ 8883*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" 8884*62c56f98SSadaf Ebrahimi 8885*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8886*62c56f98SSadaf Ebrahimirun_test "SSL async private: decrypt, error in start" \ 8887*62c56f98SSadaf Ebrahimi "$P_SRV \ 8888*62c56f98SSadaf Ebrahimi async_operations=d async_private_delay1=1 async_private_delay2=1 \ 8889*62c56f98SSadaf Ebrahimi async_private_error=1" \ 8890*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 8891*62c56f98SSadaf Ebrahimi 1 \ 8892*62c56f98SSadaf Ebrahimi -s "Async decrypt callback: injected error" \ 8893*62c56f98SSadaf Ebrahimi -S "Async resume" \ 8894*62c56f98SSadaf Ebrahimi -S "Async cancel" \ 8895*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" 8896*62c56f98SSadaf Ebrahimi 8897*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8898*62c56f98SSadaf Ebrahimirun_test "SSL async private: decrypt, cancel after start" \ 8899*62c56f98SSadaf Ebrahimi "$P_SRV \ 8900*62c56f98SSadaf Ebrahimi async_operations=d async_private_delay1=1 async_private_delay2=1 \ 8901*62c56f98SSadaf Ebrahimi async_private_error=2" \ 8902*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 8903*62c56f98SSadaf Ebrahimi 1 \ 8904*62c56f98SSadaf Ebrahimi -s "Async decrypt callback: using key slot " \ 8905*62c56f98SSadaf Ebrahimi -S "Async resume" \ 8906*62c56f98SSadaf Ebrahimi -s "Async cancel" 8907*62c56f98SSadaf Ebrahimi 8908*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8909*62c56f98SSadaf Ebrahimirun_test "SSL async private: decrypt, error in resume" \ 8910*62c56f98SSadaf Ebrahimi "$P_SRV \ 8911*62c56f98SSadaf Ebrahimi async_operations=d async_private_delay1=1 async_private_delay2=1 \ 8912*62c56f98SSadaf Ebrahimi async_private_error=3" \ 8913*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 8914*62c56f98SSadaf Ebrahimi 1 \ 8915*62c56f98SSadaf Ebrahimi -s "Async decrypt callback: using key slot " \ 8916*62c56f98SSadaf Ebrahimi -s "Async resume callback: decrypt done but injected error" \ 8917*62c56f98SSadaf Ebrahimi -S "Async cancel" \ 8918*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" 8919*62c56f98SSadaf Ebrahimi 8920*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8921*62c56f98SSadaf Ebrahimirun_test "SSL async private: cancel after start then operate correctly" \ 8922*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 \ 8923*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_delay2=1 \ 8924*62c56f98SSadaf Ebrahimi async_private_error=-2" \ 8925*62c56f98SSadaf Ebrahimi "$P_CLI; [ \$? -eq 1 ] && $P_CLI" \ 8926*62c56f98SSadaf Ebrahimi 0 \ 8927*62c56f98SSadaf Ebrahimi -s "Async cancel" \ 8928*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 8929*62c56f98SSadaf Ebrahimi -s "Async resume" \ 8930*62c56f98SSadaf Ebrahimi -s "Successful connection" 8931*62c56f98SSadaf Ebrahimi 8932*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8933*62c56f98SSadaf Ebrahimirun_test "SSL async private: error in resume then operate correctly" \ 8934*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 \ 8935*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_delay2=1 \ 8936*62c56f98SSadaf Ebrahimi async_private_error=-3" \ 8937*62c56f98SSadaf Ebrahimi "$P_CLI; [ \$? -eq 1 ] && $P_CLI" \ 8938*62c56f98SSadaf Ebrahimi 0 \ 8939*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 8940*62c56f98SSadaf Ebrahimi -s "Async resume" \ 8941*62c56f98SSadaf Ebrahimi -s "Successful connection" 8942*62c56f98SSadaf Ebrahimi 8943*62c56f98SSadaf Ebrahimi# key1: ECDSA, key2: RSA; use key1 through async, then key2 directly 8944*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8945*62c56f98SSadaf Ebrahimi# Note: the function "detect_required_features()" is not able to detect more than 8946*62c56f98SSadaf Ebrahimi# one "force_ciphersuite" per client/server and it only picks the 2nd one. 8947*62c56f98SSadaf Ebrahimi# Therefore the 1st one is added explicitly here 8948*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 8949*62c56f98SSadaf Ebrahimirun_test "SSL async private: cancel after start then fall back to transparent key" \ 8950*62c56f98SSadaf Ebrahimi "$P_SRV \ 8951*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_error=-2 \ 8952*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8953*62c56f98SSadaf Ebrahimi key_file2=data_files/server2.key crt_file2=data_files/server2.crt" \ 8954*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256; 8955*62c56f98SSadaf Ebrahimi [ \$? -eq 1 ] && 8956*62c56f98SSadaf Ebrahimi $P_CLI force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256" \ 8957*62c56f98SSadaf Ebrahimi 0 \ 8958*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot 0" \ 8959*62c56f98SSadaf Ebrahimi -S "Async resume" \ 8960*62c56f98SSadaf Ebrahimi -s "Async cancel" \ 8961*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 8962*62c56f98SSadaf Ebrahimi -s "Async sign callback: no key matches this certificate." \ 8963*62c56f98SSadaf Ebrahimi -s "Successful connection" 8964*62c56f98SSadaf Ebrahimi 8965*62c56f98SSadaf Ebrahimi# key1: ECDSA, key2: RSA; use key1 through async, then key2 directly 8966*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8967*62c56f98SSadaf Ebrahimi# Note: the function "detect_required_features()" is not able to detect more than 8968*62c56f98SSadaf Ebrahimi# one "force_ciphersuite" per client/server and it only picks the 2nd one. 8969*62c56f98SSadaf Ebrahimi# Therefore the 1st one is added explicitly here 8970*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 8971*62c56f98SSadaf Ebrahimirun_test "SSL async private: sign, error in resume then fall back to transparent key" \ 8972*62c56f98SSadaf Ebrahimi "$P_SRV \ 8973*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_error=-3 \ 8974*62c56f98SSadaf Ebrahimi key_file=data_files/server5.key crt_file=data_files/server5.crt \ 8975*62c56f98SSadaf Ebrahimi key_file2=data_files/server2.key crt_file2=data_files/server2.crt" \ 8976*62c56f98SSadaf Ebrahimi "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256; 8977*62c56f98SSadaf Ebrahimi [ \$? -eq 1 ] && 8978*62c56f98SSadaf Ebrahimi $P_CLI force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256" \ 8979*62c56f98SSadaf Ebrahimi 0 \ 8980*62c56f98SSadaf Ebrahimi -s "Async resume" \ 8981*62c56f98SSadaf Ebrahimi -s "! mbedtls_ssl_handshake returned" \ 8982*62c56f98SSadaf Ebrahimi -s "Async sign callback: no key matches this certificate." \ 8983*62c56f98SSadaf Ebrahimi -s "Successful connection" 8984*62c56f98SSadaf Ebrahimi 8985*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8986*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 8987*62c56f98SSadaf Ebrahimirun_test "SSL async private: renegotiation: client-initiated, sign" \ 8988*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 \ 8989*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_delay2=1 \ 8990*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1" \ 8991*62c56f98SSadaf Ebrahimi "$P_CLI exchanges=2 renegotiation=1 renegotiate=1" \ 8992*62c56f98SSadaf Ebrahimi 0 \ 8993*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot " \ 8994*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): sign done, status=0" 8995*62c56f98SSadaf Ebrahimi 8996*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 8997*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 8998*62c56f98SSadaf Ebrahimirun_test "SSL async private: renegotiation: server-initiated, sign" \ 8999*62c56f98SSadaf Ebrahimi "$P_SRV force_version=tls12 \ 9000*62c56f98SSadaf Ebrahimi async_operations=s async_private_delay1=1 async_private_delay2=1 \ 9001*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 renegotiate=1" \ 9002*62c56f98SSadaf Ebrahimi "$P_CLI exchanges=2 renegotiation=1" \ 9003*62c56f98SSadaf Ebrahimi 0 \ 9004*62c56f98SSadaf Ebrahimi -s "Async sign callback: using key slot " \ 9005*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): sign done, status=0" 9006*62c56f98SSadaf Ebrahimi 9007*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 9008*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 9009*62c56f98SSadaf Ebrahimirun_test "SSL async private: renegotiation: client-initiated, decrypt" \ 9010*62c56f98SSadaf Ebrahimi "$P_SRV \ 9011*62c56f98SSadaf Ebrahimi async_operations=d async_private_delay1=1 async_private_delay2=1 \ 9012*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1" \ 9013*62c56f98SSadaf Ebrahimi "$P_CLI exchanges=2 renegotiation=1 renegotiate=1 \ 9014*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 9015*62c56f98SSadaf Ebrahimi 0 \ 9016*62c56f98SSadaf Ebrahimi -s "Async decrypt callback: using key slot " \ 9017*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): decrypt done, status=0" 9018*62c56f98SSadaf Ebrahimi 9019*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE 9020*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 9021*62c56f98SSadaf Ebrahimirun_test "SSL async private: renegotiation: server-initiated, decrypt" \ 9022*62c56f98SSadaf Ebrahimi "$P_SRV \ 9023*62c56f98SSadaf Ebrahimi async_operations=d async_private_delay1=1 async_private_delay2=1 \ 9024*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 renegotiate=1" \ 9025*62c56f98SSadaf Ebrahimi "$P_CLI exchanges=2 renegotiation=1 \ 9026*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 9027*62c56f98SSadaf Ebrahimi 0 \ 9028*62c56f98SSadaf Ebrahimi -s "Async decrypt callback: using key slot " \ 9029*62c56f98SSadaf Ebrahimi -s "Async resume (slot [0-9]): decrypt done, status=0" 9030*62c56f98SSadaf Ebrahimi 9031*62c56f98SSadaf Ebrahimi# Tests for ECC extensions (rfc 4492) 9032*62c56f98SSadaf Ebrahimi 9033*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9034*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_CIPHER_MODE_CBC 9035*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 9036*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_RSA_ENABLED 9037*62c56f98SSadaf Ebrahimirun_test "Force a non ECC ciphersuite in the client side" \ 9038*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 9039*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA256" \ 9040*62c56f98SSadaf Ebrahimi 0 \ 9041*62c56f98SSadaf Ebrahimi -C "client hello, adding supported_groups extension" \ 9042*62c56f98SSadaf Ebrahimi -C "client hello, adding supported_point_formats extension" \ 9043*62c56f98SSadaf Ebrahimi -S "found supported elliptic curves extension" \ 9044*62c56f98SSadaf Ebrahimi -S "found supported point formats extension" 9045*62c56f98SSadaf Ebrahimi 9046*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9047*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_CIPHER_MODE_CBC 9048*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 9049*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_KEY_EXCHANGE_RSA_ENABLED 9050*62c56f98SSadaf Ebrahimirun_test "Force a non ECC ciphersuite in the server side" \ 9051*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA256" \ 9052*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 9053*62c56f98SSadaf Ebrahimi 0 \ 9054*62c56f98SSadaf Ebrahimi -C "found supported_point_formats extension" \ 9055*62c56f98SSadaf Ebrahimi -S "server hello, supported_point_formats extension" 9056*62c56f98SSadaf Ebrahimi 9057*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9058*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_CIPHER_MODE_CBC 9059*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 9060*62c56f98SSadaf Ebrahimirun_test "Force an ECC ciphersuite in the client side" \ 9061*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3" \ 9062*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256" \ 9063*62c56f98SSadaf Ebrahimi 0 \ 9064*62c56f98SSadaf Ebrahimi -c "client hello, adding supported_groups extension" \ 9065*62c56f98SSadaf Ebrahimi -c "client hello, adding supported_point_formats extension" \ 9066*62c56f98SSadaf Ebrahimi -s "found supported elliptic curves extension" \ 9067*62c56f98SSadaf Ebrahimi -s "found supported point formats extension" 9068*62c56f98SSadaf Ebrahimi 9069*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9070*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_CIPHER_MODE_CBC 9071*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 9072*62c56f98SSadaf Ebrahimirun_test "Force an ECC ciphersuite in the server side" \ 9073*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256" \ 9074*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 9075*62c56f98SSadaf Ebrahimi 0 \ 9076*62c56f98SSadaf Ebrahimi -c "found supported_point_formats extension" \ 9077*62c56f98SSadaf Ebrahimi -s "server hello, supported_point_formats extension" 9078*62c56f98SSadaf Ebrahimi 9079*62c56f98SSadaf Ebrahimi# Tests for DTLS HelloVerifyRequest 9080*62c56f98SSadaf Ebrahimi 9081*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9082*62c56f98SSadaf Ebrahimirun_test "DTLS cookie: enabled" \ 9083*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2" \ 9084*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2" \ 9085*62c56f98SSadaf Ebrahimi 0 \ 9086*62c56f98SSadaf Ebrahimi -s "cookie verification failed" \ 9087*62c56f98SSadaf Ebrahimi -s "cookie verification passed" \ 9088*62c56f98SSadaf Ebrahimi -S "cookie verification skipped" \ 9089*62c56f98SSadaf Ebrahimi -c "received hello verify request" \ 9090*62c56f98SSadaf Ebrahimi -s "hello verification requested" \ 9091*62c56f98SSadaf Ebrahimi -S "SSL - The requested feature is not available" 9092*62c56f98SSadaf Ebrahimi 9093*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9094*62c56f98SSadaf Ebrahimirun_test "DTLS cookie: disabled" \ 9095*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 cookies=0" \ 9096*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2" \ 9097*62c56f98SSadaf Ebrahimi 0 \ 9098*62c56f98SSadaf Ebrahimi -S "cookie verification failed" \ 9099*62c56f98SSadaf Ebrahimi -S "cookie verification passed" \ 9100*62c56f98SSadaf Ebrahimi -s "cookie verification skipped" \ 9101*62c56f98SSadaf Ebrahimi -C "received hello verify request" \ 9102*62c56f98SSadaf Ebrahimi -S "hello verification requested" \ 9103*62c56f98SSadaf Ebrahimi -S "SSL - The requested feature is not available" 9104*62c56f98SSadaf Ebrahimi 9105*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9106*62c56f98SSadaf Ebrahimirun_test "DTLS cookie: default (failing)" \ 9107*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 cookies=-1" \ 9108*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 hs_timeout=100-400" \ 9109*62c56f98SSadaf Ebrahimi 1 \ 9110*62c56f98SSadaf Ebrahimi -s "cookie verification failed" \ 9111*62c56f98SSadaf Ebrahimi -S "cookie verification passed" \ 9112*62c56f98SSadaf Ebrahimi -S "cookie verification skipped" \ 9113*62c56f98SSadaf Ebrahimi -C "received hello verify request" \ 9114*62c56f98SSadaf Ebrahimi -S "hello verification requested" \ 9115*62c56f98SSadaf Ebrahimi -s "SSL - The requested feature is not available" 9116*62c56f98SSadaf Ebrahimi 9117*62c56f98SSadaf Ebrahimirequires_ipv6 9118*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9119*62c56f98SSadaf Ebrahimirun_test "DTLS cookie: enabled, IPv6" \ 9120*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 server_addr=::1" \ 9121*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 server_addr=::1" \ 9122*62c56f98SSadaf Ebrahimi 0 \ 9123*62c56f98SSadaf Ebrahimi -s "cookie verification failed" \ 9124*62c56f98SSadaf Ebrahimi -s "cookie verification passed" \ 9125*62c56f98SSadaf Ebrahimi -S "cookie verification skipped" \ 9126*62c56f98SSadaf Ebrahimi -c "received hello verify request" \ 9127*62c56f98SSadaf Ebrahimi -s "hello verification requested" \ 9128*62c56f98SSadaf Ebrahimi -S "SSL - The requested feature is not available" 9129*62c56f98SSadaf Ebrahimi 9130*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9131*62c56f98SSadaf Ebrahimirun_test "DTLS cookie: enabled, nbio" \ 9132*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 nbio=2 debug_level=2" \ 9133*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 nbio=2 debug_level=2" \ 9134*62c56f98SSadaf Ebrahimi 0 \ 9135*62c56f98SSadaf Ebrahimi -s "cookie verification failed" \ 9136*62c56f98SSadaf Ebrahimi -s "cookie verification passed" \ 9137*62c56f98SSadaf Ebrahimi -S "cookie verification skipped" \ 9138*62c56f98SSadaf Ebrahimi -c "received hello verify request" \ 9139*62c56f98SSadaf Ebrahimi -s "hello verification requested" \ 9140*62c56f98SSadaf Ebrahimi -S "SSL - The requested feature is not available" 9141*62c56f98SSadaf Ebrahimi 9142*62c56f98SSadaf Ebrahimi# Tests for client reconnecting from the same port with DTLS 9143*62c56f98SSadaf Ebrahimi 9144*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious resend 9145*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9146*62c56f98SSadaf Ebrahimirun_test "DTLS client reconnect from same port: reference" \ 9147*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 exchanges=2 read_timeout=20000 hs_timeout=10000-20000" \ 9148*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 exchanges=2 debug_level=2 hs_timeout=10000-20000" \ 9149*62c56f98SSadaf Ebrahimi 0 \ 9150*62c56f98SSadaf Ebrahimi -C "resend" \ 9151*62c56f98SSadaf Ebrahimi -S "The operation timed out" \ 9152*62c56f98SSadaf Ebrahimi -S "Client initiated reconnection from same port" 9153*62c56f98SSadaf Ebrahimi 9154*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious resend 9155*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9156*62c56f98SSadaf Ebrahimirun_test "DTLS client reconnect from same port: reconnect" \ 9157*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 exchanges=2 read_timeout=20000 hs_timeout=10000-20000" \ 9158*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 exchanges=2 debug_level=2 hs_timeout=10000-20000 reconnect_hard=1" \ 9159*62c56f98SSadaf Ebrahimi 0 \ 9160*62c56f98SSadaf Ebrahimi -C "resend" \ 9161*62c56f98SSadaf Ebrahimi -S "The operation timed out" \ 9162*62c56f98SSadaf Ebrahimi -s "Client initiated reconnection from same port" 9163*62c56f98SSadaf Ebrahimi 9164*62c56f98SSadaf Ebrahiminot_with_valgrind # server/client too slow to respond in time (next test has higher timeouts) 9165*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9166*62c56f98SSadaf Ebrahimirun_test "DTLS client reconnect from same port: reconnect, nbio, no valgrind" \ 9167*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 exchanges=2 read_timeout=1000 nbio=2" \ 9168*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 exchanges=2 debug_level=2 hs_timeout=500-1000 reconnect_hard=1" \ 9169*62c56f98SSadaf Ebrahimi 0 \ 9170*62c56f98SSadaf Ebrahimi -S "The operation timed out" \ 9171*62c56f98SSadaf Ebrahimi -s "Client initiated reconnection from same port" 9172*62c56f98SSadaf Ebrahimi 9173*62c56f98SSadaf Ebrahimionly_with_valgrind # Only with valgrind, do previous test but with higher read_timeout and hs_timeout 9174*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9175*62c56f98SSadaf Ebrahimirun_test "DTLS client reconnect from same port: reconnect, nbio, valgrind" \ 9176*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 exchanges=2 read_timeout=2000 nbio=2 hs_timeout=1500-6000" \ 9177*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 exchanges=2 debug_level=2 hs_timeout=1500-3000 reconnect_hard=1" \ 9178*62c56f98SSadaf Ebrahimi 0 \ 9179*62c56f98SSadaf Ebrahimi -S "The operation timed out" \ 9180*62c56f98SSadaf Ebrahimi -s "Client initiated reconnection from same port" 9181*62c56f98SSadaf Ebrahimi 9182*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9183*62c56f98SSadaf Ebrahimirun_test "DTLS client reconnect from same port: no cookies" \ 9184*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 exchanges=2 read_timeout=1000 cookies=0" \ 9185*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 exchanges=2 debug_level=2 hs_timeout=500-8000 reconnect_hard=1" \ 9186*62c56f98SSadaf Ebrahimi 0 \ 9187*62c56f98SSadaf Ebrahimi -s "The operation timed out" \ 9188*62c56f98SSadaf Ebrahimi -S "Client initiated reconnection from same port" 9189*62c56f98SSadaf Ebrahimi 9190*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9191*62c56f98SSadaf Ebrahimirun_test "DTLS client reconnect from same port: attacker-injected" \ 9192*62c56f98SSadaf Ebrahimi -p "$P_PXY inject_clihlo=1" \ 9193*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 exchanges=2 debug_level=1" \ 9194*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 exchanges=2" \ 9195*62c56f98SSadaf Ebrahimi 0 \ 9196*62c56f98SSadaf Ebrahimi -s "possible client reconnect from the same port" \ 9197*62c56f98SSadaf Ebrahimi -S "Client initiated reconnection from same port" 9198*62c56f98SSadaf Ebrahimi 9199*62c56f98SSadaf Ebrahimi# Tests for various cases of client authentication with DTLS 9200*62c56f98SSadaf Ebrahimi# (focused on handshake flows and message parsing) 9201*62c56f98SSadaf Ebrahimi 9202*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9203*62c56f98SSadaf Ebrahimirun_test "DTLS client auth: required" \ 9204*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 auth_mode=required" \ 9205*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1" \ 9206*62c56f98SSadaf Ebrahimi 0 \ 9207*62c56f98SSadaf Ebrahimi -s "Verifying peer X.509 certificate... ok" 9208*62c56f98SSadaf Ebrahimi 9209*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9210*62c56f98SSadaf Ebrahimirun_test "DTLS client auth: optional, client has no cert" \ 9211*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 auth_mode=optional" \ 9212*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 crt_file=none key_file=none" \ 9213*62c56f98SSadaf Ebrahimi 0 \ 9214*62c56f98SSadaf Ebrahimi -s "! Certificate was missing" 9215*62c56f98SSadaf Ebrahimi 9216*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9217*62c56f98SSadaf Ebrahimirun_test "DTLS client auth: none, client has no cert" \ 9218*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 auth_mode=none" \ 9219*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 crt_file=none key_file=none debug_level=2" \ 9220*62c56f98SSadaf Ebrahimi 0 \ 9221*62c56f98SSadaf Ebrahimi -c "skip write certificate$" \ 9222*62c56f98SSadaf Ebrahimi -s "! Certificate verification was skipped" 9223*62c56f98SSadaf Ebrahimi 9224*62c56f98SSadaf Ebrahimirun_test "DTLS wrong PSK: badmac alert" \ 9225*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 psk=abc123 force_ciphersuite=TLS-PSK-WITH-AES-128-GCM-SHA256" \ 9226*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 psk=abc124" \ 9227*62c56f98SSadaf Ebrahimi 1 \ 9228*62c56f98SSadaf Ebrahimi -s "SSL - Verification of the message MAC failed" \ 9229*62c56f98SSadaf Ebrahimi -c "SSL - A fatal alert message was received from our peer" 9230*62c56f98SSadaf Ebrahimi 9231*62c56f98SSadaf Ebrahimi# Tests for receiving fragmented handshake messages with DTLS 9232*62c56f98SSadaf Ebrahimi 9233*62c56f98SSadaf Ebrahimirequires_gnutls 9234*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9235*62c56f98SSadaf Ebrahimirun_test "DTLS reassembly: no fragmentation (gnutls server)" \ 9236*62c56f98SSadaf Ebrahimi "$G_SRV -u --mtu 2048 -a" \ 9237*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2" \ 9238*62c56f98SSadaf Ebrahimi 0 \ 9239*62c56f98SSadaf Ebrahimi -C "found fragmented DTLS handshake message" \ 9240*62c56f98SSadaf Ebrahimi -C "error" 9241*62c56f98SSadaf Ebrahimi 9242*62c56f98SSadaf Ebrahimirequires_gnutls 9243*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9244*62c56f98SSadaf Ebrahimirun_test "DTLS reassembly: some fragmentation (gnutls server)" \ 9245*62c56f98SSadaf Ebrahimi "$G_SRV -u --mtu 512" \ 9246*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2" \ 9247*62c56f98SSadaf Ebrahimi 0 \ 9248*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9249*62c56f98SSadaf Ebrahimi -C "error" 9250*62c56f98SSadaf Ebrahimi 9251*62c56f98SSadaf Ebrahimirequires_gnutls 9252*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9253*62c56f98SSadaf Ebrahimirun_test "DTLS reassembly: more fragmentation (gnutls server)" \ 9254*62c56f98SSadaf Ebrahimi "$G_SRV -u --mtu 128" \ 9255*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2" \ 9256*62c56f98SSadaf Ebrahimi 0 \ 9257*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9258*62c56f98SSadaf Ebrahimi -C "error" 9259*62c56f98SSadaf Ebrahimi 9260*62c56f98SSadaf Ebrahimirequires_gnutls 9261*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9262*62c56f98SSadaf Ebrahimirun_test "DTLS reassembly: more fragmentation, nbio (gnutls server)" \ 9263*62c56f98SSadaf Ebrahimi "$G_SRV -u --mtu 128" \ 9264*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 nbio=2 debug_level=2" \ 9265*62c56f98SSadaf Ebrahimi 0 \ 9266*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9267*62c56f98SSadaf Ebrahimi -C "error" 9268*62c56f98SSadaf Ebrahimi 9269*62c56f98SSadaf Ebrahimirequires_gnutls 9270*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 9271*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9272*62c56f98SSadaf Ebrahimirun_test "DTLS reassembly: fragmentation, renego (gnutls server)" \ 9273*62c56f98SSadaf Ebrahimi "$G_SRV -u --mtu 256" \ 9274*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 dtls=1 renegotiation=1 renegotiate=1" \ 9275*62c56f98SSadaf Ebrahimi 0 \ 9276*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9277*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 9278*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 9279*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 9280*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 9281*62c56f98SSadaf Ebrahimi -C "error" \ 9282*62c56f98SSadaf Ebrahimi -s "Extra-header:" 9283*62c56f98SSadaf Ebrahimi 9284*62c56f98SSadaf Ebrahimirequires_gnutls 9285*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 9286*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9287*62c56f98SSadaf Ebrahimirun_test "DTLS reassembly: fragmentation, nbio, renego (gnutls server)" \ 9288*62c56f98SSadaf Ebrahimi "$G_SRV -u --mtu 256" \ 9289*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 nbio=2 dtls=1 renegotiation=1 renegotiate=1" \ 9290*62c56f98SSadaf Ebrahimi 0 \ 9291*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9292*62c56f98SSadaf Ebrahimi -c "client hello, adding renegotiation extension" \ 9293*62c56f98SSadaf Ebrahimi -c "found renegotiation extension" \ 9294*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 9295*62c56f98SSadaf Ebrahimi -C "mbedtls_ssl_handshake returned" \ 9296*62c56f98SSadaf Ebrahimi -C "error" \ 9297*62c56f98SSadaf Ebrahimi -s "Extra-header:" 9298*62c56f98SSadaf Ebrahimi 9299*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9300*62c56f98SSadaf Ebrahimirun_test "DTLS reassembly: no fragmentation (openssl server)" \ 9301*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -mtu 2048" \ 9302*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2" \ 9303*62c56f98SSadaf Ebrahimi 0 \ 9304*62c56f98SSadaf Ebrahimi -C "found fragmented DTLS handshake message" \ 9305*62c56f98SSadaf Ebrahimi -C "error" 9306*62c56f98SSadaf Ebrahimi 9307*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9308*62c56f98SSadaf Ebrahimirun_test "DTLS reassembly: some fragmentation (openssl server)" \ 9309*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -mtu 256" \ 9310*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2" \ 9311*62c56f98SSadaf Ebrahimi 0 \ 9312*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9313*62c56f98SSadaf Ebrahimi -C "error" 9314*62c56f98SSadaf Ebrahimi 9315*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9316*62c56f98SSadaf Ebrahimirun_test "DTLS reassembly: more fragmentation (openssl server)" \ 9317*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -mtu 256" \ 9318*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2" \ 9319*62c56f98SSadaf Ebrahimi 0 \ 9320*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9321*62c56f98SSadaf Ebrahimi -C "error" 9322*62c56f98SSadaf Ebrahimi 9323*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9324*62c56f98SSadaf Ebrahimirun_test "DTLS reassembly: fragmentation, nbio (openssl server)" \ 9325*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -mtu 256" \ 9326*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 nbio=2 debug_level=2" \ 9327*62c56f98SSadaf Ebrahimi 0 \ 9328*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9329*62c56f98SSadaf Ebrahimi -C "error" 9330*62c56f98SSadaf Ebrahimi 9331*62c56f98SSadaf Ebrahimi# Tests for sending fragmented handshake messages with DTLS 9332*62c56f98SSadaf Ebrahimi# 9333*62c56f98SSadaf Ebrahimi# Use client auth when we need the client to send large messages, 9334*62c56f98SSadaf Ebrahimi# and use large cert chains on both sides too (the long chains we have all use 9335*62c56f98SSadaf Ebrahimi# both RSA and ECDSA, but ideally we should have long chains with either). 9336*62c56f98SSadaf Ebrahimi# Sizes reached (UDP payload): 9337*62c56f98SSadaf Ebrahimi# - 2037B for server certificate 9338*62c56f98SSadaf Ebrahimi# - 1542B for client certificate 9339*62c56f98SSadaf Ebrahimi# - 1013B for newsessionticket 9340*62c56f98SSadaf Ebrahimi# - all others below 512B 9341*62c56f98SSadaf Ebrahimi# All those tests assume MAX_CONTENT_LEN is at least 2048 9342*62c56f98SSadaf Ebrahimi 9343*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9344*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9345*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 9346*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 9347*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9348*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: none (for reference)" \ 9349*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9350*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9351*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9352*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9353*62c56f98SSadaf Ebrahimi max_frag_len=4096" \ 9354*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9355*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9356*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9357*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9358*62c56f98SSadaf Ebrahimi max_frag_len=4096" \ 9359*62c56f98SSadaf Ebrahimi 0 \ 9360*62c56f98SSadaf Ebrahimi -S "found fragmented DTLS handshake message" \ 9361*62c56f98SSadaf Ebrahimi -C "found fragmented DTLS handshake message" \ 9362*62c56f98SSadaf Ebrahimi -C "error" 9363*62c56f98SSadaf Ebrahimi 9364*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9365*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9366*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 9367*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9368*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9369*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: server only (max_frag_len)" \ 9370*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9371*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9372*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9373*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9374*62c56f98SSadaf Ebrahimi max_frag_len=1024" \ 9375*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9376*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9377*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9378*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9379*62c56f98SSadaf Ebrahimi max_frag_len=2048" \ 9380*62c56f98SSadaf Ebrahimi 0 \ 9381*62c56f98SSadaf Ebrahimi -S "found fragmented DTLS handshake message" \ 9382*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9383*62c56f98SSadaf Ebrahimi -C "error" 9384*62c56f98SSadaf Ebrahimi 9385*62c56f98SSadaf Ebrahimi# With the MFL extension, the server has no way of forcing 9386*62c56f98SSadaf Ebrahimi# the client to not exceed a certain MTU; hence, the following 9387*62c56f98SSadaf Ebrahimi# test can't be replicated with an MTU proxy such as the one 9388*62c56f98SSadaf Ebrahimi# `client-initiated, server only (max_frag_len)` below. 9389*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9390*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9391*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 9392*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 9393*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9394*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: server only (more) (max_frag_len)" \ 9395*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9396*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9397*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9398*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9399*62c56f98SSadaf Ebrahimi max_frag_len=512" \ 9400*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9401*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9402*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9403*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9404*62c56f98SSadaf Ebrahimi max_frag_len=4096" \ 9405*62c56f98SSadaf Ebrahimi 0 \ 9406*62c56f98SSadaf Ebrahimi -S "found fragmented DTLS handshake message" \ 9407*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9408*62c56f98SSadaf Ebrahimi -C "error" 9409*62c56f98SSadaf Ebrahimi 9410*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9411*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9412*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 9413*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9414*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9415*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: client-initiated, server only (max_frag_len)" \ 9416*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=none \ 9417*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9418*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9419*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9420*62c56f98SSadaf Ebrahimi max_frag_len=2048" \ 9421*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9422*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9423*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9424*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9425*62c56f98SSadaf Ebrahimi max_frag_len=1024" \ 9426*62c56f98SSadaf Ebrahimi 0 \ 9427*62c56f98SSadaf Ebrahimi -S "found fragmented DTLS handshake message" \ 9428*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9429*62c56f98SSadaf Ebrahimi -C "error" 9430*62c56f98SSadaf Ebrahimi 9431*62c56f98SSadaf Ebrahimi# While not required by the standard defining the MFL extension 9432*62c56f98SSadaf Ebrahimi# (according to which it only applies to records, not to datagrams), 9433*62c56f98SSadaf Ebrahimi# Mbed TLS will never send datagrams larger than MFL + { Max record expansion }, 9434*62c56f98SSadaf Ebrahimi# as otherwise there wouldn't be any means to communicate MTU restrictions 9435*62c56f98SSadaf Ebrahimi# to the peer. 9436*62c56f98SSadaf Ebrahimi# The next test checks that no datagrams significantly larger than the 9437*62c56f98SSadaf Ebrahimi# negotiated MFL are sent. 9438*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9439*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9440*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 9441*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9442*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9443*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: client-initiated, server only (max_frag_len), proxy MTU" \ 9444*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=1110" \ 9445*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=none \ 9446*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9447*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9448*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9449*62c56f98SSadaf Ebrahimi max_frag_len=2048" \ 9450*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9451*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9452*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9453*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9454*62c56f98SSadaf Ebrahimi max_frag_len=1024" \ 9455*62c56f98SSadaf Ebrahimi 0 \ 9456*62c56f98SSadaf Ebrahimi -S "found fragmented DTLS handshake message" \ 9457*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9458*62c56f98SSadaf Ebrahimi -C "error" 9459*62c56f98SSadaf Ebrahimi 9460*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9461*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9462*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 9463*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9464*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9465*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: client-initiated, both (max_frag_len)" \ 9466*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9467*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9468*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9469*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9470*62c56f98SSadaf Ebrahimi max_frag_len=2048" \ 9471*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9472*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9473*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9474*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9475*62c56f98SSadaf Ebrahimi max_frag_len=1024" \ 9476*62c56f98SSadaf Ebrahimi 0 \ 9477*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9478*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9479*62c56f98SSadaf Ebrahimi -C "error" 9480*62c56f98SSadaf Ebrahimi 9481*62c56f98SSadaf Ebrahimi# While not required by the standard defining the MFL extension 9482*62c56f98SSadaf Ebrahimi# (according to which it only applies to records, not to datagrams), 9483*62c56f98SSadaf Ebrahimi# Mbed TLS will never send datagrams larger than MFL + { Max record expansion }, 9484*62c56f98SSadaf Ebrahimi# as otherwise there wouldn't be any means to communicate MTU restrictions 9485*62c56f98SSadaf Ebrahimi# to the peer. 9486*62c56f98SSadaf Ebrahimi# The next test checks that no datagrams significantly larger than the 9487*62c56f98SSadaf Ebrahimi# negotiated MFL are sent. 9488*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9489*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9490*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 9491*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9492*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9493*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: client-initiated, both (max_frag_len), proxy MTU" \ 9494*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=1110" \ 9495*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9496*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9497*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9498*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9499*62c56f98SSadaf Ebrahimi max_frag_len=2048" \ 9500*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9501*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9502*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9503*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9504*62c56f98SSadaf Ebrahimi max_frag_len=1024" \ 9505*62c56f98SSadaf Ebrahimi 0 \ 9506*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9507*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9508*62c56f98SSadaf Ebrahimi -C "error" 9509*62c56f98SSadaf Ebrahimi 9510*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9511*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9512*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 9513*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9514*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: none (for reference) (MTU)" \ 9515*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9516*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9517*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9518*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9519*62c56f98SSadaf Ebrahimi mtu=4096" \ 9520*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9521*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9522*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9523*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9524*62c56f98SSadaf Ebrahimi mtu=4096" \ 9525*62c56f98SSadaf Ebrahimi 0 \ 9526*62c56f98SSadaf Ebrahimi -S "found fragmented DTLS handshake message" \ 9527*62c56f98SSadaf Ebrahimi -C "found fragmented DTLS handshake message" \ 9528*62c56f98SSadaf Ebrahimi -C "error" 9529*62c56f98SSadaf Ebrahimi 9530*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9531*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9532*62c56f98SSadaf Ebrahimirequires_max_content_len 4096 9533*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9534*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: client (MTU)" \ 9535*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9536*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9537*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9538*62c56f98SSadaf Ebrahimi hs_timeout=3500-60000 \ 9539*62c56f98SSadaf Ebrahimi mtu=4096" \ 9540*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9541*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9542*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9543*62c56f98SSadaf Ebrahimi hs_timeout=3500-60000 \ 9544*62c56f98SSadaf Ebrahimi mtu=1024" \ 9545*62c56f98SSadaf Ebrahimi 0 \ 9546*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9547*62c56f98SSadaf Ebrahimi -C "found fragmented DTLS handshake message" \ 9548*62c56f98SSadaf Ebrahimi -C "error" 9549*62c56f98SSadaf Ebrahimi 9550*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9551*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9552*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9553*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9554*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: server (MTU)" \ 9555*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9556*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9557*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9558*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9559*62c56f98SSadaf Ebrahimi mtu=512" \ 9560*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9561*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9562*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9563*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9564*62c56f98SSadaf Ebrahimi mtu=2048" \ 9565*62c56f98SSadaf Ebrahimi 0 \ 9566*62c56f98SSadaf Ebrahimi -S "found fragmented DTLS handshake message" \ 9567*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9568*62c56f98SSadaf Ebrahimi -C "error" 9569*62c56f98SSadaf Ebrahimi 9570*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9571*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9572*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9573*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9574*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: both (MTU=1024)" \ 9575*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=1024" \ 9576*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9577*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9578*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9579*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9580*62c56f98SSadaf Ebrahimi mtu=1024" \ 9581*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9582*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9583*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9584*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9585*62c56f98SSadaf Ebrahimi mtu=1024" \ 9586*62c56f98SSadaf Ebrahimi 0 \ 9587*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9588*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9589*62c56f98SSadaf Ebrahimi -C "error" 9590*62c56f98SSadaf Ebrahimi 9591*62c56f98SSadaf Ebrahimi# Forcing ciphersuite for this test to fit the MTU of 512 with full config. 9592*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9593*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9594*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 9595*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9596*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_GCM_C 9597*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9598*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: both (MTU=512)" \ 9599*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=512" \ 9600*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9601*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9602*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9603*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9604*62c56f98SSadaf Ebrahimi mtu=512" \ 9605*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9606*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9607*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9608*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 9609*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000 \ 9610*62c56f98SSadaf Ebrahimi mtu=512" \ 9611*62c56f98SSadaf Ebrahimi 0 \ 9612*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9613*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9614*62c56f98SSadaf Ebrahimi -C "error" 9615*62c56f98SSadaf Ebrahimi 9616*62c56f98SSadaf Ebrahimi# Test for automatic MTU reduction on repeated resend. 9617*62c56f98SSadaf Ebrahimi# Forcing ciphersuite for this test to fit the MTU of 508 with full config. 9618*62c56f98SSadaf Ebrahimi# The ratio of max/min timeout should ideally equal 4 to accept two 9619*62c56f98SSadaf Ebrahimi# retransmissions, but in some cases (like both the server and client using 9620*62c56f98SSadaf Ebrahimi# fragmentation and auto-reduction) an extra retransmission might occur, 9621*62c56f98SSadaf Ebrahimi# hence the ratio of 8. 9622*62c56f98SSadaf Ebrahiminot_with_valgrind 9623*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9624*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9625*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9626*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_GCM_C 9627*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9628*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU: auto-reduction (not valgrind)" \ 9629*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=508" \ 9630*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9631*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9632*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9633*62c56f98SSadaf Ebrahimi hs_timeout=400-3200" \ 9634*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9635*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9636*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9637*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 9638*62c56f98SSadaf Ebrahimi hs_timeout=400-3200" \ 9639*62c56f98SSadaf Ebrahimi 0 \ 9640*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9641*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9642*62c56f98SSadaf Ebrahimi -C "error" 9643*62c56f98SSadaf Ebrahimi 9644*62c56f98SSadaf Ebrahimi# Forcing ciphersuite for this test to fit the MTU of 508 with full config. 9645*62c56f98SSadaf Ebrahimionly_with_valgrind 9646*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9647*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9648*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9649*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_GCM_C 9650*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9651*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU: auto-reduction (with valgrind)" \ 9652*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=508" \ 9653*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9654*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9655*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9656*62c56f98SSadaf Ebrahimi hs_timeout=250-10000" \ 9657*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9658*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9659*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9660*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 9661*62c56f98SSadaf Ebrahimi hs_timeout=250-10000" \ 9662*62c56f98SSadaf Ebrahimi 0 \ 9663*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9664*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9665*62c56f98SSadaf Ebrahimi -C "error" 9666*62c56f98SSadaf Ebrahimi 9667*62c56f98SSadaf Ebrahimi# the proxy shouldn't drop or mess up anything, so we shouldn't need to resend 9668*62c56f98SSadaf Ebrahimi# OTOH the client might resend if the server is to slow to reset after sending 9669*62c56f98SSadaf Ebrahimi# a HelloVerifyRequest, so only check for no retransmission server-side 9670*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious autoreduction due to timeout 9671*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9672*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9673*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9674*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9675*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU, simple handshake (MTU=1024)" \ 9676*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=1024" \ 9677*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9678*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9679*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9680*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9681*62c56f98SSadaf Ebrahimi mtu=1024" \ 9682*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9683*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9684*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9685*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9686*62c56f98SSadaf Ebrahimi mtu=1024" \ 9687*62c56f98SSadaf Ebrahimi 0 \ 9688*62c56f98SSadaf Ebrahimi -S "autoreduction" \ 9689*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9690*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9691*62c56f98SSadaf Ebrahimi -C "error" 9692*62c56f98SSadaf Ebrahimi 9693*62c56f98SSadaf Ebrahimi# Forcing ciphersuite for this test to fit the MTU of 512 with full config. 9694*62c56f98SSadaf Ebrahimi# the proxy shouldn't drop or mess up anything, so we shouldn't need to resend 9695*62c56f98SSadaf Ebrahimi# OTOH the client might resend if the server is to slow to reset after sending 9696*62c56f98SSadaf Ebrahimi# a HelloVerifyRequest, so only check for no retransmission server-side 9697*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious autoreduction due to timeout 9698*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9699*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9700*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9701*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_GCM_C 9702*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9703*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU, simple handshake (MTU=512)" \ 9704*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=512" \ 9705*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9706*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9707*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9708*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9709*62c56f98SSadaf Ebrahimi mtu=512" \ 9710*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9711*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9712*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9713*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 9714*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9715*62c56f98SSadaf Ebrahimi mtu=512" \ 9716*62c56f98SSadaf Ebrahimi 0 \ 9717*62c56f98SSadaf Ebrahimi -S "autoreduction" \ 9718*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9719*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9720*62c56f98SSadaf Ebrahimi -C "error" 9721*62c56f98SSadaf Ebrahimi 9722*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious autoreduction due to timeout 9723*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9724*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9725*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9726*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 9727*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU, simple handshake, nbio (MTU=1024)" \ 9728*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=1024" \ 9729*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9730*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9731*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9732*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9733*62c56f98SSadaf Ebrahimi mtu=1024 nbio=2" \ 9734*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9735*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9736*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9737*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9738*62c56f98SSadaf Ebrahimi mtu=1024 nbio=2" \ 9739*62c56f98SSadaf Ebrahimi 0 \ 9740*62c56f98SSadaf Ebrahimi -S "autoreduction" \ 9741*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9742*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9743*62c56f98SSadaf Ebrahimi -C "error" 9744*62c56f98SSadaf Ebrahimi 9745*62c56f98SSadaf Ebrahimi# Forcing ciphersuite for this test to fit the MTU of 512 with full config. 9746*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious autoreduction due to timeout 9747*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9748*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9749*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9750*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_GCM_C 9751*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9752*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU, simple handshake, nbio (MTU=512)" \ 9753*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=512" \ 9754*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9755*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9756*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9757*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9758*62c56f98SSadaf Ebrahimi mtu=512 nbio=2" \ 9759*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9760*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9761*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9762*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 9763*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9764*62c56f98SSadaf Ebrahimi mtu=512 nbio=2" \ 9765*62c56f98SSadaf Ebrahimi 0 \ 9766*62c56f98SSadaf Ebrahimi -S "autoreduction" \ 9767*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9768*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9769*62c56f98SSadaf Ebrahimi -C "error" 9770*62c56f98SSadaf Ebrahimi 9771*62c56f98SSadaf Ebrahimi# Forcing ciphersuite for this test to fit the MTU of 1450 with full config. 9772*62c56f98SSadaf Ebrahimi# This ensures things still work after session_reset(). 9773*62c56f98SSadaf Ebrahimi# It also exercises the "resumed handshake" flow. 9774*62c56f98SSadaf Ebrahimi# Since we don't support reading fragmented ClientHello yet, 9775*62c56f98SSadaf Ebrahimi# up the MTU to 1450 (larger than ClientHello with session ticket, 9776*62c56f98SSadaf Ebrahimi# but still smaller than client's Certificate to ensure fragmentation). 9777*62c56f98SSadaf Ebrahimi# An autoreduction on the client-side might happen if the server is 9778*62c56f98SSadaf Ebrahimi# slow to reset, therefore omitting '-C "autoreduction"' below. 9779*62c56f98SSadaf Ebrahimi# reco_delay avoids races where the client reconnects before the server has 9780*62c56f98SSadaf Ebrahimi# resumed listening, which would result in a spurious autoreduction. 9781*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious autoreduction due to timeout 9782*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9783*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9784*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9785*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_GCM_C 9786*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9787*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU, resumed handshake" \ 9788*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=1450" \ 9789*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9790*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9791*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9792*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9793*62c56f98SSadaf Ebrahimi mtu=1450" \ 9794*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9795*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9796*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9797*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9798*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 9799*62c56f98SSadaf Ebrahimi mtu=1450 reconnect=1 skip_close_notify=1 reco_delay=1000" \ 9800*62c56f98SSadaf Ebrahimi 0 \ 9801*62c56f98SSadaf Ebrahimi -S "autoreduction" \ 9802*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9803*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9804*62c56f98SSadaf Ebrahimi -C "error" 9805*62c56f98SSadaf Ebrahimi 9806*62c56f98SSadaf Ebrahimi# An autoreduction on the client-side might happen if the server is 9807*62c56f98SSadaf Ebrahimi# slow to reset, therefore omitting '-C "autoreduction"' below. 9808*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious autoreduction due to timeout 9809*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9810*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9811*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 9812*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 9813*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_CHACHAPOLY_C 9814*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9815*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU, ChachaPoly renego" \ 9816*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=512" \ 9817*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9818*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9819*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9820*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 \ 9821*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9822*62c56f98SSadaf Ebrahimi mtu=512" \ 9823*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9824*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9825*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9826*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 renegotiate=1 \ 9827*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 9828*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9829*62c56f98SSadaf Ebrahimi mtu=512" \ 9830*62c56f98SSadaf Ebrahimi 0 \ 9831*62c56f98SSadaf Ebrahimi -S "autoreduction" \ 9832*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9833*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9834*62c56f98SSadaf Ebrahimi -C "error" 9835*62c56f98SSadaf Ebrahimi 9836*62c56f98SSadaf Ebrahimi# An autoreduction on the client-side might happen if the server is 9837*62c56f98SSadaf Ebrahimi# slow to reset, therefore omitting '-C "autoreduction"' below. 9838*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious autoreduction due to timeout 9839*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9840*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9841*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 9842*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 9843*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9844*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_GCM_C 9845*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9846*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU, AES-GCM renego" \ 9847*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=512" \ 9848*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9849*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9850*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9851*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 \ 9852*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9853*62c56f98SSadaf Ebrahimi mtu=512" \ 9854*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9855*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9856*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9857*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 renegotiate=1 \ 9858*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 9859*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9860*62c56f98SSadaf Ebrahimi mtu=512" \ 9861*62c56f98SSadaf Ebrahimi 0 \ 9862*62c56f98SSadaf Ebrahimi -S "autoreduction" \ 9863*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9864*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9865*62c56f98SSadaf Ebrahimi -C "error" 9866*62c56f98SSadaf Ebrahimi 9867*62c56f98SSadaf Ebrahimi# An autoreduction on the client-side might happen if the server is 9868*62c56f98SSadaf Ebrahimi# slow to reset, therefore omitting '-C "autoreduction"' below. 9869*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious autoreduction due to timeout 9870*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9871*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9872*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 9873*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 9874*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9875*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_CCM_C 9876*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9877*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU, AES-CCM renego" \ 9878*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=1024" \ 9879*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9880*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9881*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9882*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 \ 9883*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8 \ 9884*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9885*62c56f98SSadaf Ebrahimi mtu=1024" \ 9886*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9887*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9888*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9889*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 renegotiate=1 \ 9890*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9891*62c56f98SSadaf Ebrahimi mtu=1024" \ 9892*62c56f98SSadaf Ebrahimi 0 \ 9893*62c56f98SSadaf Ebrahimi -S "autoreduction" \ 9894*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9895*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9896*62c56f98SSadaf Ebrahimi -C "error" 9897*62c56f98SSadaf Ebrahimi 9898*62c56f98SSadaf Ebrahimi# An autoreduction on the client-side might happen if the server is 9899*62c56f98SSadaf Ebrahimi# slow to reset, therefore omitting '-C "autoreduction"' below. 9900*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious autoreduction due to timeout 9901*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9902*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9903*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 9904*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 9905*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9906*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_CIPHER_MODE_CBC 9907*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ENCRYPT_THEN_MAC 9908*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9909*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU, AES-CBC EtM renego" \ 9910*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=1024" \ 9911*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9912*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9913*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9914*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 \ 9915*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256 \ 9916*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9917*62c56f98SSadaf Ebrahimi mtu=1024" \ 9918*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9919*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9920*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9921*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 renegotiate=1 \ 9922*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9923*62c56f98SSadaf Ebrahimi mtu=1024" \ 9924*62c56f98SSadaf Ebrahimi 0 \ 9925*62c56f98SSadaf Ebrahimi -S "autoreduction" \ 9926*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9927*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9928*62c56f98SSadaf Ebrahimi -C "error" 9929*62c56f98SSadaf Ebrahimi 9930*62c56f98SSadaf Ebrahimi# An autoreduction on the client-side might happen if the server is 9931*62c56f98SSadaf Ebrahimi# slow to reset, therefore omitting '-C "autoreduction"' below. 9932*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious autoreduction due to timeout 9933*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9934*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9935*62c56f98SSadaf Ebrahimirequires_hash_alg SHA_256 9936*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 9937*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9938*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_CIPHER_MODE_CBC 9939*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9940*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU, AES-CBC non-EtM renego" \ 9941*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=1024" \ 9942*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9943*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9944*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9945*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 \ 9946*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256 etm=0 \ 9947*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9948*62c56f98SSadaf Ebrahimi mtu=1024" \ 9949*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9950*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9951*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9952*62c56f98SSadaf Ebrahimi exchanges=2 renegotiation=1 renegotiate=1 \ 9953*62c56f98SSadaf Ebrahimi hs_timeout=10000-60000 \ 9954*62c56f98SSadaf Ebrahimi mtu=1024" \ 9955*62c56f98SSadaf Ebrahimi 0 \ 9956*62c56f98SSadaf Ebrahimi -S "autoreduction" \ 9957*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9958*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9959*62c56f98SSadaf Ebrahimi -C "error" 9960*62c56f98SSadaf Ebrahimi 9961*62c56f98SSadaf Ebrahimi# Forcing ciphersuite for this test to fit the MTU of 512 with full config. 9962*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9963*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9964*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9965*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_GCM_C 9966*62c56f98SSadaf Ebrahimiclient_needs_more_time 2 9967*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9968*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU + 3d" \ 9969*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=512 drop=8 delay=8 duplicate=8" \ 9970*62c56f98SSadaf Ebrahimi "$P_SRV dgram_packing=0 dtls=1 debug_level=2 auth_mode=required \ 9971*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9972*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9973*62c56f98SSadaf Ebrahimi hs_timeout=250-10000 mtu=512" \ 9974*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 \ 9975*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9976*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 9977*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 9978*62c56f98SSadaf Ebrahimi hs_timeout=250-10000 mtu=512" \ 9979*62c56f98SSadaf Ebrahimi 0 \ 9980*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 9981*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 9982*62c56f98SSadaf Ebrahimi -C "error" 9983*62c56f98SSadaf Ebrahimi 9984*62c56f98SSadaf Ebrahimi# Forcing ciphersuite for this test to fit the MTU of 512 with full config. 9985*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 9986*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 9987*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_AES_C 9988*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_GCM_C 9989*62c56f98SSadaf Ebrahimiclient_needs_more_time 2 9990*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 9991*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: proxy MTU + 3d, nbio" \ 9992*62c56f98SSadaf Ebrahimi -p "$P_PXY mtu=512 drop=8 delay=8 duplicate=8" \ 9993*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 auth_mode=required \ 9994*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 9995*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 9996*62c56f98SSadaf Ebrahimi hs_timeout=250-10000 mtu=512 nbio=2" \ 9997*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 9998*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 9999*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 10000*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ 10001*62c56f98SSadaf Ebrahimi hs_timeout=250-10000 mtu=512 nbio=2" \ 10002*62c56f98SSadaf Ebrahimi 0 \ 10003*62c56f98SSadaf Ebrahimi -s "found fragmented DTLS handshake message" \ 10004*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message" \ 10005*62c56f98SSadaf Ebrahimi -C "error" 10006*62c56f98SSadaf Ebrahimi 10007*62c56f98SSadaf Ebrahimi# interop tests for DTLS fragmentating with reliable connection 10008*62c56f98SSadaf Ebrahimi# 10009*62c56f98SSadaf Ebrahimi# here and below we just want to test that the we fragment in a way that 10010*62c56f98SSadaf Ebrahimi# pleases other implementations, so we don't need the peer to fragment 10011*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 10012*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 10013*62c56f98SSadaf Ebrahimirequires_gnutls 10014*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 10015*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: gnutls server, DTLS 1.2" \ 10016*62c56f98SSadaf Ebrahimi "$G_SRV -u" \ 10017*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 10018*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 10019*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 10020*62c56f98SSadaf Ebrahimi mtu=512 force_version=dtls12" \ 10021*62c56f98SSadaf Ebrahimi 0 \ 10022*62c56f98SSadaf Ebrahimi -c "fragmenting handshake message" \ 10023*62c56f98SSadaf Ebrahimi -C "error" 10024*62c56f98SSadaf Ebrahimi 10025*62c56f98SSadaf Ebrahimi# We use --insecure for the GnuTLS client because it expects 10026*62c56f98SSadaf Ebrahimi# the hostname / IP it connects to to be the name used in the 10027*62c56f98SSadaf Ebrahimi# certificate obtained from the server. Here, however, it 10028*62c56f98SSadaf Ebrahimi# connects to 127.0.0.1 while our test certificates use 'localhost' 10029*62c56f98SSadaf Ebrahimi# as the server name in the certificate. This will make the 10030*62c56f98SSadaf Ebrahimi# certificate validation fail, but passing --insecure makes 10031*62c56f98SSadaf Ebrahimi# GnuTLS continue the connection nonetheless. 10032*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 10033*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 10034*62c56f98SSadaf Ebrahimirequires_gnutls 10035*62c56f98SSadaf Ebrahimirequires_not_i686 10036*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 10037*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: gnutls client, DTLS 1.2" \ 10038*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 \ 10039*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 10040*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 10041*62c56f98SSadaf Ebrahimi mtu=512 force_version=dtls12" \ 10042*62c56f98SSadaf Ebrahimi "$G_CLI -u --insecure 127.0.0.1" \ 10043*62c56f98SSadaf Ebrahimi 0 \ 10044*62c56f98SSadaf Ebrahimi -s "fragmenting handshake message" 10045*62c56f98SSadaf Ebrahimi 10046*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 10047*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 10048*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 10049*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: openssl server, DTLS 1.2" \ 10050*62c56f98SSadaf Ebrahimi "$O_SRV -dtls1_2 -verify 10" \ 10051*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 10052*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 10053*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 10054*62c56f98SSadaf Ebrahimi mtu=512 force_version=dtls12" \ 10055*62c56f98SSadaf Ebrahimi 0 \ 10056*62c56f98SSadaf Ebrahimi -c "fragmenting handshake message" \ 10057*62c56f98SSadaf Ebrahimi -C "error" 10058*62c56f98SSadaf Ebrahimi 10059*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 10060*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 10061*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 10062*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: openssl client, DTLS 1.2" \ 10063*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 \ 10064*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 10065*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 10066*62c56f98SSadaf Ebrahimi mtu=512 force_version=dtls12" \ 10067*62c56f98SSadaf Ebrahimi "$O_CLI -dtls1_2" \ 10068*62c56f98SSadaf Ebrahimi 0 \ 10069*62c56f98SSadaf Ebrahimi -s "fragmenting handshake message" 10070*62c56f98SSadaf Ebrahimi 10071*62c56f98SSadaf Ebrahimi# interop tests for DTLS fragmentating with unreliable connection 10072*62c56f98SSadaf Ebrahimi# 10073*62c56f98SSadaf Ebrahimi# again we just want to test that the we fragment in a way that 10074*62c56f98SSadaf Ebrahimi# pleases other implementations, so we don't need the peer to fragment 10075*62c56f98SSadaf Ebrahimirequires_gnutls_next 10076*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 10077*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 10078*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 10079*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 10080*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: 3d, gnutls server, DTLS 1.2" \ 10081*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=8 delay=8 duplicate=8" \ 10082*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV -u" \ 10083*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 \ 10084*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 10085*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 10086*62c56f98SSadaf Ebrahimi hs_timeout=250-60000 mtu=512 force_version=dtls12" \ 10087*62c56f98SSadaf Ebrahimi 0 \ 10088*62c56f98SSadaf Ebrahimi -c "fragmenting handshake message" \ 10089*62c56f98SSadaf Ebrahimi -C "error" 10090*62c56f98SSadaf Ebrahimi 10091*62c56f98SSadaf Ebrahimirequires_gnutls_next 10092*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 10093*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 10094*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 10095*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 10096*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: 3d, gnutls client, DTLS 1.2" \ 10097*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=8 delay=8 duplicate=8" \ 10098*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 \ 10099*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 10100*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 10101*62c56f98SSadaf Ebrahimi hs_timeout=250-60000 mtu=512 force_version=dtls12" \ 10102*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI -u --insecure 127.0.0.1" \ 10103*62c56f98SSadaf Ebrahimi 0 \ 10104*62c56f98SSadaf Ebrahimi -s "fragmenting handshake message" 10105*62c56f98SSadaf Ebrahimi 10106*62c56f98SSadaf Ebrahimi## The test below requires 1.1.1a or higher version of openssl, otherwise 10107*62c56f98SSadaf Ebrahimi## it might trigger a bug due to openssl server (https://github.com/openssl/openssl/issues/6902) 10108*62c56f98SSadaf Ebrahimirequires_openssl_next 10109*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 10110*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 10111*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 10112*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 10113*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: 3d, openssl server, DTLS 1.2" \ 10114*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=8 delay=8 duplicate=8" \ 10115*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -dtls1_2 -verify 10" \ 10116*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 \ 10117*62c56f98SSadaf Ebrahimi crt_file=data_files/server8_int-ca2.crt \ 10118*62c56f98SSadaf Ebrahimi key_file=data_files/server8.key \ 10119*62c56f98SSadaf Ebrahimi hs_timeout=250-60000 mtu=512 force_version=dtls12" \ 10120*62c56f98SSadaf Ebrahimi 0 \ 10121*62c56f98SSadaf Ebrahimi -c "fragmenting handshake message" \ 10122*62c56f98SSadaf Ebrahimi -C "error" 10123*62c56f98SSadaf Ebrahimi 10124*62c56f98SSadaf Ebrahimi## the test below will time out with certain seed. 10125*62c56f98SSadaf Ebrahimi## The cause is an openssl bug (https://github.com/openssl/openssl/issues/18887) 10126*62c56f98SSadaf Ebrahimiskip_next_test 10127*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_DTLS 10128*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 10129*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 10130*62c56f98SSadaf Ebrahimirequires_max_content_len 2048 10131*62c56f98SSadaf Ebrahimirun_test "DTLS fragmenting: 3d, openssl client, DTLS 1.2" \ 10132*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=8 delay=8 duplicate=8" \ 10133*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 \ 10134*62c56f98SSadaf Ebrahimi crt_file=data_files/server7_int-ca.crt \ 10135*62c56f98SSadaf Ebrahimi key_file=data_files/server7.key \ 10136*62c56f98SSadaf Ebrahimi hs_timeout=250-60000 mtu=512 force_version=dtls12" \ 10137*62c56f98SSadaf Ebrahimi "$O_CLI -dtls1_2" \ 10138*62c56f98SSadaf Ebrahimi 0 \ 10139*62c56f98SSadaf Ebrahimi -s "fragmenting handshake message" 10140*62c56f98SSadaf Ebrahimi 10141*62c56f98SSadaf Ebrahimi# Tests for DTLS-SRTP (RFC 5764) 10142*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10143*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10144*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP all profiles supported" \ 10145*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 debug_level=3" \ 10146*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10147*62c56f98SSadaf Ebrahimi 0 \ 10148*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10149*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10150*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10151*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10152*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10153*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10154*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10155*62c56f98SSadaf Ebrahimi -c "found srtp profile" \ 10156*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10157*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10158*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10159*62c56f98SSadaf Ebrahimi -C "error" 10160*62c56f98SSadaf Ebrahimi 10161*62c56f98SSadaf Ebrahimi 10162*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10163*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10164*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports all profiles. Client supports one profile." \ 10165*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 debug_level=3" \ 10166*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 srtp_force_profile=5 debug_level=3" \ 10167*62c56f98SSadaf Ebrahimi 0 \ 10168*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10169*62c56f98SSadaf Ebrahimi -s "found srtp profile: MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80" \ 10170*62c56f98SSadaf Ebrahimi -s "selected srtp profile: MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80" \ 10171*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10172*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10173*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10174*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10175*62c56f98SSadaf Ebrahimi -c "found srtp profile: MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80" \ 10176*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10177*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10178*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10179*62c56f98SSadaf Ebrahimi -C "error" 10180*62c56f98SSadaf Ebrahimi 10181*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10182*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10183*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports one profile. Client supports all profiles." \ 10184*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 srtp_force_profile=6 debug_level=3" \ 10185*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10186*62c56f98SSadaf Ebrahimi 0 \ 10187*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10188*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10189*62c56f98SSadaf Ebrahimi -s "selected srtp profile: MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32" \ 10190*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10191*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10192*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10193*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10194*62c56f98SSadaf Ebrahimi -c "found srtp profile: MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32" \ 10195*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10196*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10197*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10198*62c56f98SSadaf Ebrahimi -C "error" 10199*62c56f98SSadaf Ebrahimi 10200*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10201*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10202*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server and Client support only one matching profile." \ 10203*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 srtp_force_profile=2 debug_level=3" \ 10204*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 srtp_force_profile=2 debug_level=3" \ 10205*62c56f98SSadaf Ebrahimi 0 \ 10206*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10207*62c56f98SSadaf Ebrahimi -s "found srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" \ 10208*62c56f98SSadaf Ebrahimi -s "selected srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" \ 10209*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10210*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10211*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10212*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10213*62c56f98SSadaf Ebrahimi -c "found srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" \ 10214*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10215*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10216*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10217*62c56f98SSadaf Ebrahimi -C "error" 10218*62c56f98SSadaf Ebrahimi 10219*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10220*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10221*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server and Client support only one different profile." \ 10222*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 srtp_force_profile=2 debug_level=3" \ 10223*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 srtp_force_profile=6 debug_level=3" \ 10224*62c56f98SSadaf Ebrahimi 0 \ 10225*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10226*62c56f98SSadaf Ebrahimi -s "found srtp profile: MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32" \ 10227*62c56f98SSadaf Ebrahimi -S "selected srtp profile" \ 10228*62c56f98SSadaf Ebrahimi -S "server hello, adding use_srtp extension" \ 10229*62c56f98SSadaf Ebrahimi -S "DTLS-SRTP key material is"\ 10230*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10231*62c56f98SSadaf Ebrahimi -C "found use_srtp extension" \ 10232*62c56f98SSadaf Ebrahimi -C "found srtp profile" \ 10233*62c56f98SSadaf Ebrahimi -C "selected srtp profile" \ 10234*62c56f98SSadaf Ebrahimi -C "DTLS-SRTP key material is"\ 10235*62c56f98SSadaf Ebrahimi -C "error" 10236*62c56f98SSadaf Ebrahimi 10237*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10238*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10239*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server doesn't support use_srtp extension." \ 10240*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3" \ 10241*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10242*62c56f98SSadaf Ebrahimi 0 \ 10243*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10244*62c56f98SSadaf Ebrahimi -S "server hello, adding use_srtp extension" \ 10245*62c56f98SSadaf Ebrahimi -S "DTLS-SRTP key material is"\ 10246*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10247*62c56f98SSadaf Ebrahimi -C "found use_srtp extension" \ 10248*62c56f98SSadaf Ebrahimi -C "found srtp profile" \ 10249*62c56f98SSadaf Ebrahimi -C "selected srtp profile" \ 10250*62c56f98SSadaf Ebrahimi -C "DTLS-SRTP key material is"\ 10251*62c56f98SSadaf Ebrahimi -C "error" 10252*62c56f98SSadaf Ebrahimi 10253*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10254*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10255*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP all profiles supported. mki used" \ 10256*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 support_mki=1 debug_level=3" \ 10257*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 mki=542310ab34290481 debug_level=3" \ 10258*62c56f98SSadaf Ebrahimi 0 \ 10259*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10260*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10261*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10262*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10263*62c56f98SSadaf Ebrahimi -s "dumping 'using mki' (8 bytes)" \ 10264*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10265*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10266*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10267*62c56f98SSadaf Ebrahimi -c "found srtp profile" \ 10268*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10269*62c56f98SSadaf Ebrahimi -c "dumping 'sending mki' (8 bytes)" \ 10270*62c56f98SSadaf Ebrahimi -c "dumping 'received mki' (8 bytes)" \ 10271*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10272*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10273*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *DTLS-SRTP mki value: [0-9A-F]*$'"\ 10274*62c56f98SSadaf Ebrahimi -C "error" 10275*62c56f98SSadaf Ebrahimi 10276*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10277*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10278*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP all profiles supported. server doesn't support mki." \ 10279*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 debug_level=3" \ 10280*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 mki=542310ab34290481 debug_level=3" \ 10281*62c56f98SSadaf Ebrahimi 0 \ 10282*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10283*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10284*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10285*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10286*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10287*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP no mki value negotiated"\ 10288*62c56f98SSadaf Ebrahimi -S "dumping 'using mki' (8 bytes)" \ 10289*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10290*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10291*62c56f98SSadaf Ebrahimi -c "found srtp profile" \ 10292*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10293*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10294*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP no mki value negotiated"\ 10295*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10296*62c56f98SSadaf Ebrahimi -c "dumping 'sending mki' (8 bytes)" \ 10297*62c56f98SSadaf Ebrahimi -C "dumping 'received mki' (8 bytes)" \ 10298*62c56f98SSadaf Ebrahimi -C "error" 10299*62c56f98SSadaf Ebrahimi 10300*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10301*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10302*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP all profiles supported. openssl client." \ 10303*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 debug_level=3" \ 10304*62c56f98SSadaf Ebrahimi "$O_CLI -dtls -use_srtp SRTP_AES128_CM_SHA1_80:SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10305*62c56f98SSadaf Ebrahimi 0 \ 10306*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10307*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10308*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10309*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10310*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10311*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10312*62c56f98SSadaf Ebrahimi -c "SRTP Extension negotiated, profile=SRTP_AES128_CM_SHA1_80" 10313*62c56f98SSadaf Ebrahimi 10314*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10315*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10316*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports all profiles. Client supports all profiles, in different order. openssl client." \ 10317*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 debug_level=3" \ 10318*62c56f98SSadaf Ebrahimi "$O_CLI -dtls -use_srtp SRTP_AES128_CM_SHA1_32:SRTP_AES128_CM_SHA1_80 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10319*62c56f98SSadaf Ebrahimi 0 \ 10320*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10321*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10322*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10323*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10324*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10325*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10326*62c56f98SSadaf Ebrahimi -c "SRTP Extension negotiated, profile=SRTP_AES128_CM_SHA1_32" 10327*62c56f98SSadaf Ebrahimi 10328*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10329*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10330*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports all profiles. Client supports one profile. openssl client." \ 10331*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 debug_level=3" \ 10332*62c56f98SSadaf Ebrahimi "$O_CLI -dtls -use_srtp SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10333*62c56f98SSadaf Ebrahimi 0 \ 10334*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10335*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10336*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10337*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10338*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10339*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10340*62c56f98SSadaf Ebrahimi -c "SRTP Extension negotiated, profile=SRTP_AES128_CM_SHA1_32" 10341*62c56f98SSadaf Ebrahimi 10342*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10343*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10344*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports one profile. Client supports all profiles. openssl client." \ 10345*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 srtp_force_profile=2 debug_level=3" \ 10346*62c56f98SSadaf Ebrahimi "$O_CLI -dtls -use_srtp SRTP_AES128_CM_SHA1_80:SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10347*62c56f98SSadaf Ebrahimi 0 \ 10348*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10349*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10350*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10351*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10352*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10353*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10354*62c56f98SSadaf Ebrahimi -c "SRTP Extension negotiated, profile=SRTP_AES128_CM_SHA1_32" 10355*62c56f98SSadaf Ebrahimi 10356*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10357*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10358*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server and Client support only one matching profile. openssl client." \ 10359*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 srtp_force_profile=2 debug_level=3" \ 10360*62c56f98SSadaf Ebrahimi "$O_CLI -dtls -use_srtp SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10361*62c56f98SSadaf Ebrahimi 0 \ 10362*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10363*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10364*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10365*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10366*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10367*62c56f98SSadaf Ebrahimi -g "find_in_both '^ *Keying material: [0-9A-F]*$'"\ 10368*62c56f98SSadaf Ebrahimi -c "SRTP Extension negotiated, profile=SRTP_AES128_CM_SHA1_32" 10369*62c56f98SSadaf Ebrahimi 10370*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10371*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10372*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server and Client support only one different profile. openssl client." \ 10373*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 srtp_force_profile=1 debug_level=3" \ 10374*62c56f98SSadaf Ebrahimi "$O_CLI -dtls -use_srtp SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10375*62c56f98SSadaf Ebrahimi 0 \ 10376*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10377*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10378*62c56f98SSadaf Ebrahimi -S "selected srtp profile" \ 10379*62c56f98SSadaf Ebrahimi -S "server hello, adding use_srtp extension" \ 10380*62c56f98SSadaf Ebrahimi -S "DTLS-SRTP key material is"\ 10381*62c56f98SSadaf Ebrahimi -C "SRTP Extension negotiated, profile" 10382*62c56f98SSadaf Ebrahimi 10383*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10384*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10385*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server doesn't support use_srtp extension. openssl client" \ 10386*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3" \ 10387*62c56f98SSadaf Ebrahimi "$O_CLI -dtls -use_srtp SRTP_AES128_CM_SHA1_80:SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10388*62c56f98SSadaf Ebrahimi 0 \ 10389*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10390*62c56f98SSadaf Ebrahimi -S "server hello, adding use_srtp extension" \ 10391*62c56f98SSadaf Ebrahimi -S "DTLS-SRTP key material is"\ 10392*62c56f98SSadaf Ebrahimi -C "SRTP Extension negotiated, profile" 10393*62c56f98SSadaf Ebrahimi 10394*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10395*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10396*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP all profiles supported. openssl server" \ 10397*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -verify 0 -use_srtp SRTP_AES128_CM_SHA1_80:SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10398*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10399*62c56f98SSadaf Ebrahimi 0 \ 10400*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10401*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10402*62c56f98SSadaf Ebrahimi -c "found srtp profile" \ 10403*62c56f98SSadaf Ebrahimi -c "selected srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80" \ 10404*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10405*62c56f98SSadaf Ebrahimi -C "error" 10406*62c56f98SSadaf Ebrahimi 10407*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10408*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10409*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports all profiles. Client supports all profiles, in different order. openssl server." \ 10410*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -verify 0 -use_srtp SRTP_AES128_CM_SHA1_32:SRTP_AES128_CM_SHA1_80 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10411*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10412*62c56f98SSadaf Ebrahimi 0 \ 10413*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10414*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10415*62c56f98SSadaf Ebrahimi -c "found srtp profile" \ 10416*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10417*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10418*62c56f98SSadaf Ebrahimi -C "error" 10419*62c56f98SSadaf Ebrahimi 10420*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10421*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10422*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports all profiles. Client supports one profile. openssl server." \ 10423*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -verify 0 -use_srtp SRTP_AES128_CM_SHA1_80:SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10424*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 srtp_force_profile=2 debug_level=3" \ 10425*62c56f98SSadaf Ebrahimi 0 \ 10426*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10427*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10428*62c56f98SSadaf Ebrahimi -c "found srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" \ 10429*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10430*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10431*62c56f98SSadaf Ebrahimi -C "error" 10432*62c56f98SSadaf Ebrahimi 10433*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10434*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10435*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports one profile. Client supports all profiles. openssl server." \ 10436*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -verify 0 -use_srtp SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10437*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10438*62c56f98SSadaf Ebrahimi 0 \ 10439*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10440*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10441*62c56f98SSadaf Ebrahimi -c "found srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" \ 10442*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10443*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10444*62c56f98SSadaf Ebrahimi -C "error" 10445*62c56f98SSadaf Ebrahimi 10446*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10447*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10448*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server and Client support only one matching profile. openssl server." \ 10449*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -verify 0 -use_srtp SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10450*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 srtp_force_profile=2 debug_level=3" \ 10451*62c56f98SSadaf Ebrahimi 0 \ 10452*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10453*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10454*62c56f98SSadaf Ebrahimi -c "found srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" \ 10455*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10456*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10457*62c56f98SSadaf Ebrahimi -C "error" 10458*62c56f98SSadaf Ebrahimi 10459*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10460*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10461*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server and Client support only one different profile. openssl server." \ 10462*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -verify 0 -use_srtp SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10463*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 srtp_force_profile=6 debug_level=3" \ 10464*62c56f98SSadaf Ebrahimi 0 \ 10465*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10466*62c56f98SSadaf Ebrahimi -C "found use_srtp extension" \ 10467*62c56f98SSadaf Ebrahimi -C "found srtp profile" \ 10468*62c56f98SSadaf Ebrahimi -C "selected srtp profile" \ 10469*62c56f98SSadaf Ebrahimi -C "DTLS-SRTP key material is"\ 10470*62c56f98SSadaf Ebrahimi -C "error" 10471*62c56f98SSadaf Ebrahimi 10472*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10473*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10474*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server doesn't support use_srtp extension. openssl server" \ 10475*62c56f98SSadaf Ebrahimi "$O_SRV -dtls" \ 10476*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10477*62c56f98SSadaf Ebrahimi 0 \ 10478*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10479*62c56f98SSadaf Ebrahimi -C "found use_srtp extension" \ 10480*62c56f98SSadaf Ebrahimi -C "found srtp profile" \ 10481*62c56f98SSadaf Ebrahimi -C "selected srtp profile" \ 10482*62c56f98SSadaf Ebrahimi -C "DTLS-SRTP key material is"\ 10483*62c56f98SSadaf Ebrahimi -C "error" 10484*62c56f98SSadaf Ebrahimi 10485*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10486*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10487*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP all profiles supported. server doesn't support mki. openssl server." \ 10488*62c56f98SSadaf Ebrahimi "$O_SRV -dtls -verify 0 -use_srtp SRTP_AES128_CM_SHA1_80:SRTP_AES128_CM_SHA1_32 -keymatexport 'EXTRACTOR-dtls_srtp' -keymatexportlen 60" \ 10489*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 mki=542310ab34290481 debug_level=3" \ 10490*62c56f98SSadaf Ebrahimi 0 \ 10491*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10492*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10493*62c56f98SSadaf Ebrahimi -c "found srtp profile" \ 10494*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10495*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10496*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP no mki value negotiated"\ 10497*62c56f98SSadaf Ebrahimi -c "dumping 'sending mki' (8 bytes)" \ 10498*62c56f98SSadaf Ebrahimi -C "dumping 'received mki' (8 bytes)" \ 10499*62c56f98SSadaf Ebrahimi -C "error" 10500*62c56f98SSadaf Ebrahimi 10501*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10502*62c56f98SSadaf Ebrahimirequires_gnutls 10503*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10504*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP all profiles supported. gnutls client." \ 10505*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 debug_level=3" \ 10506*62c56f98SSadaf Ebrahimi "$G_CLI -u --srtp-profiles=SRTP_AES128_CM_HMAC_SHA1_80:SRTP_AES128_CM_HMAC_SHA1_32:SRTP_NULL_HMAC_SHA1_80:SRTP_NULL_SHA1_32 --insecure 127.0.0.1" \ 10507*62c56f98SSadaf Ebrahimi 0 \ 10508*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10509*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10510*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10511*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10512*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10513*62c56f98SSadaf Ebrahimi -c "SRTP profile: SRTP_AES128_CM_HMAC_SHA1_80" 10514*62c56f98SSadaf Ebrahimi 10515*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10516*62c56f98SSadaf Ebrahimirequires_gnutls 10517*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10518*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports all profiles. Client supports all profiles, in different order. gnutls client." \ 10519*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 debug_level=3" \ 10520*62c56f98SSadaf Ebrahimi "$G_CLI -u --srtp-profiles=SRTP_NULL_HMAC_SHA1_80:SRTP_AES128_CM_HMAC_SHA1_80:SRTP_NULL_SHA1_32:SRTP_AES128_CM_HMAC_SHA1_32 --insecure 127.0.0.1" \ 10521*62c56f98SSadaf Ebrahimi 0 \ 10522*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10523*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10524*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10525*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10526*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10527*62c56f98SSadaf Ebrahimi -c "SRTP profile: SRTP_NULL_HMAC_SHA1_80" 10528*62c56f98SSadaf Ebrahimi 10529*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10530*62c56f98SSadaf Ebrahimirequires_gnutls 10531*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10532*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports all profiles. Client supports one profile. gnutls client." \ 10533*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 debug_level=3" \ 10534*62c56f98SSadaf Ebrahimi "$G_CLI -u --srtp-profiles=SRTP_AES128_CM_HMAC_SHA1_32 --insecure 127.0.0.1" \ 10535*62c56f98SSadaf Ebrahimi 0 \ 10536*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10537*62c56f98SSadaf Ebrahimi -s "found srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" \ 10538*62c56f98SSadaf Ebrahimi -s "selected srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" \ 10539*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10540*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10541*62c56f98SSadaf Ebrahimi -c "SRTP profile: SRTP_AES128_CM_HMAC_SHA1_32" 10542*62c56f98SSadaf Ebrahimi 10543*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10544*62c56f98SSadaf Ebrahimirequires_gnutls 10545*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10546*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports one profile. Client supports all profiles. gnutls client." \ 10547*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 srtp_force_profile=6 debug_level=3" \ 10548*62c56f98SSadaf Ebrahimi "$G_CLI -u --srtp-profiles=SRTP_AES128_CM_HMAC_SHA1_80:SRTP_AES128_CM_HMAC_SHA1_32:SRTP_NULL_HMAC_SHA1_80:SRTP_NULL_SHA1_32 --insecure 127.0.0.1" \ 10549*62c56f98SSadaf Ebrahimi 0 \ 10550*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10551*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10552*62c56f98SSadaf Ebrahimi -s "selected srtp profile: MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32" \ 10553*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10554*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10555*62c56f98SSadaf Ebrahimi -c "SRTP profile: SRTP_NULL_SHA1_32" 10556*62c56f98SSadaf Ebrahimi 10557*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10558*62c56f98SSadaf Ebrahimirequires_gnutls 10559*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10560*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server and Client support only one matching profile. gnutls client." \ 10561*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 srtp_force_profile=2 debug_level=3" \ 10562*62c56f98SSadaf Ebrahimi "$G_CLI -u --srtp-profiles=SRTP_AES128_CM_HMAC_SHA1_32 --insecure 127.0.0.1" \ 10563*62c56f98SSadaf Ebrahimi 0 \ 10564*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10565*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10566*62c56f98SSadaf Ebrahimi -s "selected srtp profile" \ 10567*62c56f98SSadaf Ebrahimi -s "server hello, adding use_srtp extension" \ 10568*62c56f98SSadaf Ebrahimi -s "DTLS-SRTP key material is"\ 10569*62c56f98SSadaf Ebrahimi -c "SRTP profile: SRTP_AES128_CM_HMAC_SHA1_32" 10570*62c56f98SSadaf Ebrahimi 10571*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10572*62c56f98SSadaf Ebrahimirequires_gnutls 10573*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10574*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server and Client support only one different profile. gnutls client." \ 10575*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 use_srtp=1 srtp_force_profile=1 debug_level=3" \ 10576*62c56f98SSadaf Ebrahimi "$G_CLI -u --srtp-profiles=SRTP_AES128_CM_HMAC_SHA1_32 --insecure 127.0.0.1" \ 10577*62c56f98SSadaf Ebrahimi 0 \ 10578*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10579*62c56f98SSadaf Ebrahimi -s "found srtp profile" \ 10580*62c56f98SSadaf Ebrahimi -S "selected srtp profile" \ 10581*62c56f98SSadaf Ebrahimi -S "server hello, adding use_srtp extension" \ 10582*62c56f98SSadaf Ebrahimi -S "DTLS-SRTP key material is"\ 10583*62c56f98SSadaf Ebrahimi -C "SRTP profile:" 10584*62c56f98SSadaf Ebrahimi 10585*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10586*62c56f98SSadaf Ebrahimirequires_gnutls 10587*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10588*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server doesn't support use_srtp extension. gnutls client" \ 10589*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=3" \ 10590*62c56f98SSadaf Ebrahimi "$G_CLI -u --srtp-profiles=SRTP_AES128_CM_HMAC_SHA1_80:SRTP_AES128_CM_HMAC_SHA1_32:SRTP_NULL_HMAC_SHA1_80:SRTP_NULL_SHA1_32 --insecure 127.0.0.1" \ 10591*62c56f98SSadaf Ebrahimi 0 \ 10592*62c56f98SSadaf Ebrahimi -s "found use_srtp extension" \ 10593*62c56f98SSadaf Ebrahimi -S "server hello, adding use_srtp extension" \ 10594*62c56f98SSadaf Ebrahimi -S "DTLS-SRTP key material is"\ 10595*62c56f98SSadaf Ebrahimi -C "SRTP profile:" 10596*62c56f98SSadaf Ebrahimi 10597*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10598*62c56f98SSadaf Ebrahimirequires_gnutls 10599*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10600*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP all profiles supported. gnutls server" \ 10601*62c56f98SSadaf Ebrahimi "$G_SRV -u --srtp-profiles=SRTP_AES128_CM_HMAC_SHA1_80:SRTP_AES128_CM_HMAC_SHA1_32:SRTP_NULL_HMAC_SHA1_80:SRTP_NULL_SHA1_32" \ 10602*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10603*62c56f98SSadaf Ebrahimi 0 \ 10604*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10605*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10606*62c56f98SSadaf Ebrahimi -c "found srtp profile" \ 10607*62c56f98SSadaf Ebrahimi -c "selected srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80" \ 10608*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10609*62c56f98SSadaf Ebrahimi -C "error" 10610*62c56f98SSadaf Ebrahimi 10611*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10612*62c56f98SSadaf Ebrahimirequires_gnutls 10613*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10614*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports all profiles. Client supports all profiles, in different order. gnutls server." \ 10615*62c56f98SSadaf Ebrahimi "$G_SRV -u --srtp-profiles=SRTP_NULL_SHA1_32:SRTP_AES128_CM_HMAC_SHA1_32:SRTP_AES128_CM_HMAC_SHA1_80:SRTP_NULL_HMAC_SHA1_80:SRTP_NULL_SHA1_32" \ 10616*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10617*62c56f98SSadaf Ebrahimi 0 \ 10618*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10619*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10620*62c56f98SSadaf Ebrahimi -c "found srtp profile" \ 10621*62c56f98SSadaf Ebrahimi -c "selected srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80" \ 10622*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10623*62c56f98SSadaf Ebrahimi -C "error" 10624*62c56f98SSadaf Ebrahimi 10625*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10626*62c56f98SSadaf Ebrahimirequires_gnutls 10627*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10628*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports all profiles. Client supports one profile. gnutls server." \ 10629*62c56f98SSadaf Ebrahimi "$G_SRV -u --srtp-profiles=SRTP_NULL_SHA1_32:SRTP_AES128_CM_HMAC_SHA1_32:SRTP_AES128_CM_HMAC_SHA1_80:SRTP_NULL_HMAC_SHA1_80:SRTP_NULL_SHA1_32" \ 10630*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 srtp_force_profile=2 debug_level=3" \ 10631*62c56f98SSadaf Ebrahimi 0 \ 10632*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10633*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10634*62c56f98SSadaf Ebrahimi -c "found srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" \ 10635*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10636*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10637*62c56f98SSadaf Ebrahimi -C "error" 10638*62c56f98SSadaf Ebrahimi 10639*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10640*62c56f98SSadaf Ebrahimirequires_gnutls 10641*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10642*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server supports one profile. Client supports all profiles. gnutls server." \ 10643*62c56f98SSadaf Ebrahimi "$G_SRV -u --srtp-profiles=SRTP_NULL_HMAC_SHA1_80" \ 10644*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10645*62c56f98SSadaf Ebrahimi 0 \ 10646*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10647*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10648*62c56f98SSadaf Ebrahimi -c "found srtp profile: MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80" \ 10649*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10650*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10651*62c56f98SSadaf Ebrahimi -C "error" 10652*62c56f98SSadaf Ebrahimi 10653*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10654*62c56f98SSadaf Ebrahimirequires_gnutls 10655*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10656*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server and Client support only one matching profile. gnutls server." \ 10657*62c56f98SSadaf Ebrahimi "$G_SRV -u --srtp-profiles=SRTP_AES128_CM_HMAC_SHA1_32" \ 10658*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 srtp_force_profile=2 debug_level=3" \ 10659*62c56f98SSadaf Ebrahimi 0 \ 10660*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10661*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10662*62c56f98SSadaf Ebrahimi -c "found srtp profile: MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" \ 10663*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10664*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10665*62c56f98SSadaf Ebrahimi -C "error" 10666*62c56f98SSadaf Ebrahimi 10667*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10668*62c56f98SSadaf Ebrahimirequires_gnutls 10669*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10670*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server and Client support only one different profile. gnutls server." \ 10671*62c56f98SSadaf Ebrahimi "$G_SRV -u --srtp-profiles=SRTP_AES128_CM_HMAC_SHA1_32" \ 10672*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 srtp_force_profile=6 debug_level=3" \ 10673*62c56f98SSadaf Ebrahimi 0 \ 10674*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10675*62c56f98SSadaf Ebrahimi -C "found use_srtp extension" \ 10676*62c56f98SSadaf Ebrahimi -C "found srtp profile" \ 10677*62c56f98SSadaf Ebrahimi -C "selected srtp profile" \ 10678*62c56f98SSadaf Ebrahimi -C "DTLS-SRTP key material is"\ 10679*62c56f98SSadaf Ebrahimi -C "error" 10680*62c56f98SSadaf Ebrahimi 10681*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10682*62c56f98SSadaf Ebrahimirequires_gnutls 10683*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10684*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP server doesn't support use_srtp extension. gnutls server" \ 10685*62c56f98SSadaf Ebrahimi "$G_SRV -u" \ 10686*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 debug_level=3" \ 10687*62c56f98SSadaf Ebrahimi 0 \ 10688*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10689*62c56f98SSadaf Ebrahimi -C "found use_srtp extension" \ 10690*62c56f98SSadaf Ebrahimi -C "found srtp profile" \ 10691*62c56f98SSadaf Ebrahimi -C "selected srtp profile" \ 10692*62c56f98SSadaf Ebrahimi -C "DTLS-SRTP key material is"\ 10693*62c56f98SSadaf Ebrahimi -C "error" 10694*62c56f98SSadaf Ebrahimi 10695*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_DTLS_SRTP 10696*62c56f98SSadaf Ebrahimirequires_gnutls 10697*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10698*62c56f98SSadaf Ebrahimirun_test "DTLS-SRTP all profiles supported. mki used. gnutls server." \ 10699*62c56f98SSadaf Ebrahimi "$G_SRV -u --srtp-profiles=SRTP_AES128_CM_HMAC_SHA1_80:SRTP_AES128_CM_HMAC_SHA1_32:SRTP_NULL_HMAC_SHA1_80:SRTP_NULL_SHA1_32" \ 10700*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 use_srtp=1 mki=542310ab34290481 debug_level=3" \ 10701*62c56f98SSadaf Ebrahimi 0 \ 10702*62c56f98SSadaf Ebrahimi -c "client hello, adding use_srtp extension" \ 10703*62c56f98SSadaf Ebrahimi -c "found use_srtp extension" \ 10704*62c56f98SSadaf Ebrahimi -c "found srtp profile" \ 10705*62c56f98SSadaf Ebrahimi -c "selected srtp profile" \ 10706*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP key material is"\ 10707*62c56f98SSadaf Ebrahimi -c "DTLS-SRTP mki value:"\ 10708*62c56f98SSadaf Ebrahimi -c "dumping 'sending mki' (8 bytes)" \ 10709*62c56f98SSadaf Ebrahimi -c "dumping 'received mki' (8 bytes)" \ 10710*62c56f98SSadaf Ebrahimi -C "error" 10711*62c56f98SSadaf Ebrahimi 10712*62c56f98SSadaf Ebrahimi# Tests for specific things with "unreliable" UDP connection 10713*62c56f98SSadaf Ebrahimi 10714*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious resend due to timeout 10715*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10716*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: reference" \ 10717*62c56f98SSadaf Ebrahimi -p "$P_PXY" \ 10718*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=2 hs_timeout=10000-20000" \ 10719*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=2 hs_timeout=10000-20000" \ 10720*62c56f98SSadaf Ebrahimi 0 \ 10721*62c56f98SSadaf Ebrahimi -C "replayed record" \ 10722*62c56f98SSadaf Ebrahimi -S "replayed record" \ 10723*62c56f98SSadaf Ebrahimi -C "Buffer record from epoch" \ 10724*62c56f98SSadaf Ebrahimi -S "Buffer record from epoch" \ 10725*62c56f98SSadaf Ebrahimi -C "ssl_buffer_message" \ 10726*62c56f98SSadaf Ebrahimi -S "ssl_buffer_message" \ 10727*62c56f98SSadaf Ebrahimi -C "discarding invalid record" \ 10728*62c56f98SSadaf Ebrahimi -S "discarding invalid record" \ 10729*62c56f98SSadaf Ebrahimi -S "resend" \ 10730*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 10731*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 10732*62c56f98SSadaf Ebrahimi 10733*62c56f98SSadaf Ebrahiminot_with_valgrind # spurious resend due to timeout 10734*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10735*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: duplicate every packet" \ 10736*62c56f98SSadaf Ebrahimi -p "$P_PXY duplicate=1" \ 10737*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 debug_level=2 hs_timeout=10000-20000" \ 10738*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 debug_level=2 hs_timeout=10000-20000" \ 10739*62c56f98SSadaf Ebrahimi 0 \ 10740*62c56f98SSadaf Ebrahimi -c "replayed record" \ 10741*62c56f98SSadaf Ebrahimi -s "replayed record" \ 10742*62c56f98SSadaf Ebrahimi -c "record from another epoch" \ 10743*62c56f98SSadaf Ebrahimi -s "record from another epoch" \ 10744*62c56f98SSadaf Ebrahimi -S "resend" \ 10745*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 10746*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 10747*62c56f98SSadaf Ebrahimi 10748*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10749*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: duplicate every packet, server anti-replay off" \ 10750*62c56f98SSadaf Ebrahimi -p "$P_PXY duplicate=1" \ 10751*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 debug_level=2 anti_replay=0" \ 10752*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 debug_level=2" \ 10753*62c56f98SSadaf Ebrahimi 0 \ 10754*62c56f98SSadaf Ebrahimi -c "replayed record" \ 10755*62c56f98SSadaf Ebrahimi -S "replayed record" \ 10756*62c56f98SSadaf Ebrahimi -c "record from another epoch" \ 10757*62c56f98SSadaf Ebrahimi -s "record from another epoch" \ 10758*62c56f98SSadaf Ebrahimi -c "resend" \ 10759*62c56f98SSadaf Ebrahimi -s "resend" \ 10760*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 10761*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 10762*62c56f98SSadaf Ebrahimi 10763*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10764*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: multiple records in same datagram" \ 10765*62c56f98SSadaf Ebrahimi -p "$P_PXY pack=50" \ 10766*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 debug_level=2" \ 10767*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 debug_level=2" \ 10768*62c56f98SSadaf Ebrahimi 0 \ 10769*62c56f98SSadaf Ebrahimi -c "next record in same datagram" \ 10770*62c56f98SSadaf Ebrahimi -s "next record in same datagram" 10771*62c56f98SSadaf Ebrahimi 10772*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10773*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: multiple records in same datagram, duplicate every packet" \ 10774*62c56f98SSadaf Ebrahimi -p "$P_PXY pack=50 duplicate=1" \ 10775*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 debug_level=2" \ 10776*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 debug_level=2" \ 10777*62c56f98SSadaf Ebrahimi 0 \ 10778*62c56f98SSadaf Ebrahimi -c "next record in same datagram" \ 10779*62c56f98SSadaf Ebrahimi -s "next record in same datagram" 10780*62c56f98SSadaf Ebrahimi 10781*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10782*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: inject invalid AD record, default badmac_limit" \ 10783*62c56f98SSadaf Ebrahimi -p "$P_PXY bad_ad=1" \ 10784*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 debug_level=1" \ 10785*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 debug_level=1 read_timeout=100" \ 10786*62c56f98SSadaf Ebrahimi 0 \ 10787*62c56f98SSadaf Ebrahimi -c "discarding invalid record (mac)" \ 10788*62c56f98SSadaf Ebrahimi -s "discarding invalid record (mac)" \ 10789*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 10790*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 10791*62c56f98SSadaf Ebrahimi -S "too many records with bad MAC" \ 10792*62c56f98SSadaf Ebrahimi -S "Verification of the message MAC failed" 10793*62c56f98SSadaf Ebrahimi 10794*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10795*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: inject invalid AD record, badmac_limit 1" \ 10796*62c56f98SSadaf Ebrahimi -p "$P_PXY bad_ad=1" \ 10797*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 debug_level=1 badmac_limit=1" \ 10798*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 debug_level=1 read_timeout=100" \ 10799*62c56f98SSadaf Ebrahimi 1 \ 10800*62c56f98SSadaf Ebrahimi -C "discarding invalid record (mac)" \ 10801*62c56f98SSadaf Ebrahimi -S "discarding invalid record (mac)" \ 10802*62c56f98SSadaf Ebrahimi -S "Extra-header:" \ 10803*62c56f98SSadaf Ebrahimi -C "HTTP/1.0 200 OK" \ 10804*62c56f98SSadaf Ebrahimi -s "too many records with bad MAC" \ 10805*62c56f98SSadaf Ebrahimi -s "Verification of the message MAC failed" 10806*62c56f98SSadaf Ebrahimi 10807*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10808*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: inject invalid AD record, badmac_limit 2" \ 10809*62c56f98SSadaf Ebrahimi -p "$P_PXY bad_ad=1" \ 10810*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 debug_level=1 badmac_limit=2" \ 10811*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 debug_level=1 read_timeout=100" \ 10812*62c56f98SSadaf Ebrahimi 0 \ 10813*62c56f98SSadaf Ebrahimi -c "discarding invalid record (mac)" \ 10814*62c56f98SSadaf Ebrahimi -s "discarding invalid record (mac)" \ 10815*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 10816*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 10817*62c56f98SSadaf Ebrahimi -S "too many records with bad MAC" \ 10818*62c56f98SSadaf Ebrahimi -S "Verification of the message MAC failed" 10819*62c56f98SSadaf Ebrahimi 10820*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10821*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: inject invalid AD record, badmac_limit 2, exchanges 2"\ 10822*62c56f98SSadaf Ebrahimi -p "$P_PXY bad_ad=1" \ 10823*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 debug_level=1 badmac_limit=2 exchanges=2" \ 10824*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 debug_level=1 read_timeout=100 exchanges=2" \ 10825*62c56f98SSadaf Ebrahimi 1 \ 10826*62c56f98SSadaf Ebrahimi -c "discarding invalid record (mac)" \ 10827*62c56f98SSadaf Ebrahimi -s "discarding invalid record (mac)" \ 10828*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 10829*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 10830*62c56f98SSadaf Ebrahimi -s "too many records with bad MAC" \ 10831*62c56f98SSadaf Ebrahimi -s "Verification of the message MAC failed" 10832*62c56f98SSadaf Ebrahimi 10833*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10834*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: delay ChangeCipherSpec" \ 10835*62c56f98SSadaf Ebrahimi -p "$P_PXY delay_ccs=1" \ 10836*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 debug_level=1 dgram_packing=0" \ 10837*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 debug_level=1 dgram_packing=0" \ 10838*62c56f98SSadaf Ebrahimi 0 \ 10839*62c56f98SSadaf Ebrahimi -c "record from another epoch" \ 10840*62c56f98SSadaf Ebrahimi -s "record from another epoch" \ 10841*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 10842*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 10843*62c56f98SSadaf Ebrahimi 10844*62c56f98SSadaf Ebrahimi# Tests for reordering support with DTLS 10845*62c56f98SSadaf Ebrahimi 10846*62c56f98SSadaf Ebrahimirequires_certificate_authentication 10847*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10848*62c56f98SSadaf Ebrahimirun_test "DTLS reordering: Buffer out-of-order handshake message on client" \ 10849*62c56f98SSadaf Ebrahimi -p "$P_PXY delay_srv=ServerHello" \ 10850*62c56f98SSadaf Ebrahimi "$P_SRV dgram_packing=0 cookies=0 dtls=1 debug_level=2 \ 10851*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10852*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 \ 10853*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10854*62c56f98SSadaf Ebrahimi 0 \ 10855*62c56f98SSadaf Ebrahimi -c "Buffering HS message" \ 10856*62c56f98SSadaf Ebrahimi -c "Next handshake message has been buffered - load"\ 10857*62c56f98SSadaf Ebrahimi -S "Buffering HS message" \ 10858*62c56f98SSadaf Ebrahimi -S "Next handshake message has been buffered - load"\ 10859*62c56f98SSadaf Ebrahimi -C "Injecting buffered CCS message" \ 10860*62c56f98SSadaf Ebrahimi -C "Remember CCS message" \ 10861*62c56f98SSadaf Ebrahimi -S "Injecting buffered CCS message" \ 10862*62c56f98SSadaf Ebrahimi -S "Remember CCS message" 10863*62c56f98SSadaf Ebrahimi 10864*62c56f98SSadaf Ebrahimirequires_certificate_authentication 10865*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10866*62c56f98SSadaf Ebrahimirun_test "DTLS reordering: Buffer out-of-order handshake message fragment on client" \ 10867*62c56f98SSadaf Ebrahimi -p "$P_PXY delay_srv=ServerHello" \ 10868*62c56f98SSadaf Ebrahimi "$P_SRV mtu=512 dgram_packing=0 cookies=0 dtls=1 debug_level=2 \ 10869*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10870*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 \ 10871*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10872*62c56f98SSadaf Ebrahimi 0 \ 10873*62c56f98SSadaf Ebrahimi -c "Buffering HS message" \ 10874*62c56f98SSadaf Ebrahimi -c "found fragmented DTLS handshake message"\ 10875*62c56f98SSadaf Ebrahimi -c "Next handshake message 1 not or only partially bufffered" \ 10876*62c56f98SSadaf Ebrahimi -c "Next handshake message has been buffered - load"\ 10877*62c56f98SSadaf Ebrahimi -S "Buffering HS message" \ 10878*62c56f98SSadaf Ebrahimi -S "Next handshake message has been buffered - load"\ 10879*62c56f98SSadaf Ebrahimi -C "Injecting buffered CCS message" \ 10880*62c56f98SSadaf Ebrahimi -C "Remember CCS message" \ 10881*62c56f98SSadaf Ebrahimi -S "Injecting buffered CCS message" \ 10882*62c56f98SSadaf Ebrahimi -S "Remember CCS message" 10883*62c56f98SSadaf Ebrahimi 10884*62c56f98SSadaf Ebrahimi# The client buffers the ServerKeyExchange before receiving the fragmented 10885*62c56f98SSadaf Ebrahimi# Certificate message; at the time of writing, together these are aroudn 1200b 10886*62c56f98SSadaf Ebrahimi# in size, so that the bound below ensures that the certificate can be reassembled 10887*62c56f98SSadaf Ebrahimi# while keeping the ServerKeyExchange. 10888*62c56f98SSadaf Ebrahimirequires_certificate_authentication 10889*62c56f98SSadaf Ebrahimirequires_config_value_at_least "MBEDTLS_SSL_DTLS_MAX_BUFFERING" 1300 10890*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10891*62c56f98SSadaf Ebrahimirun_test "DTLS reordering: Buffer out-of-order hs msg before reassembling next" \ 10892*62c56f98SSadaf Ebrahimi -p "$P_PXY delay_srv=Certificate delay_srv=Certificate" \ 10893*62c56f98SSadaf Ebrahimi "$P_SRV mtu=512 dgram_packing=0 cookies=0 dtls=1 debug_level=2 \ 10894*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10895*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 \ 10896*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10897*62c56f98SSadaf Ebrahimi 0 \ 10898*62c56f98SSadaf Ebrahimi -c "Buffering HS message" \ 10899*62c56f98SSadaf Ebrahimi -c "Next handshake message has been buffered - load"\ 10900*62c56f98SSadaf Ebrahimi -C "attempt to make space by freeing buffered messages" \ 10901*62c56f98SSadaf Ebrahimi -S "Buffering HS message" \ 10902*62c56f98SSadaf Ebrahimi -S "Next handshake message has been buffered - load"\ 10903*62c56f98SSadaf Ebrahimi -C "Injecting buffered CCS message" \ 10904*62c56f98SSadaf Ebrahimi -C "Remember CCS message" \ 10905*62c56f98SSadaf Ebrahimi -S "Injecting buffered CCS message" \ 10906*62c56f98SSadaf Ebrahimi -S "Remember CCS message" 10907*62c56f98SSadaf Ebrahimi 10908*62c56f98SSadaf Ebrahimi# The size constraints ensure that the delayed certificate message can't 10909*62c56f98SSadaf Ebrahimi# be reassembled while keeping the ServerKeyExchange message, but it can 10910*62c56f98SSadaf Ebrahimi# when dropping it first. 10911*62c56f98SSadaf Ebrahimirequires_certificate_authentication 10912*62c56f98SSadaf Ebrahimirequires_config_value_at_least "MBEDTLS_SSL_DTLS_MAX_BUFFERING" 900 10913*62c56f98SSadaf Ebrahimirequires_config_value_at_most "MBEDTLS_SSL_DTLS_MAX_BUFFERING" 1299 10914*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10915*62c56f98SSadaf Ebrahimirun_test "DTLS reordering: Buffer out-of-order hs msg before reassembling next, free buffered msg" \ 10916*62c56f98SSadaf Ebrahimi -p "$P_PXY delay_srv=Certificate delay_srv=Certificate" \ 10917*62c56f98SSadaf Ebrahimi "$P_SRV mtu=512 dgram_packing=0 cookies=0 dtls=1 debug_level=2 \ 10918*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10919*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 \ 10920*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10921*62c56f98SSadaf Ebrahimi 0 \ 10922*62c56f98SSadaf Ebrahimi -c "Buffering HS message" \ 10923*62c56f98SSadaf Ebrahimi -c "attempt to make space by freeing buffered future messages" \ 10924*62c56f98SSadaf Ebrahimi -c "Enough space available after freeing buffered HS messages" \ 10925*62c56f98SSadaf Ebrahimi -S "Buffering HS message" \ 10926*62c56f98SSadaf Ebrahimi -S "Next handshake message has been buffered - load"\ 10927*62c56f98SSadaf Ebrahimi -C "Injecting buffered CCS message" \ 10928*62c56f98SSadaf Ebrahimi -C "Remember CCS message" \ 10929*62c56f98SSadaf Ebrahimi -S "Injecting buffered CCS message" \ 10930*62c56f98SSadaf Ebrahimi -S "Remember CCS message" 10931*62c56f98SSadaf Ebrahimi 10932*62c56f98SSadaf Ebrahimirequires_certificate_authentication 10933*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10934*62c56f98SSadaf Ebrahimirun_test "DTLS reordering: Buffer out-of-order handshake message on server" \ 10935*62c56f98SSadaf Ebrahimi -p "$P_PXY delay_cli=Certificate" \ 10936*62c56f98SSadaf Ebrahimi "$P_SRV dgram_packing=0 auth_mode=required cookies=0 dtls=1 debug_level=2 \ 10937*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10938*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 \ 10939*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10940*62c56f98SSadaf Ebrahimi 0 \ 10941*62c56f98SSadaf Ebrahimi -C "Buffering HS message" \ 10942*62c56f98SSadaf Ebrahimi -C "Next handshake message has been buffered - load"\ 10943*62c56f98SSadaf Ebrahimi -s "Buffering HS message" \ 10944*62c56f98SSadaf Ebrahimi -s "Next handshake message has been buffered - load" \ 10945*62c56f98SSadaf Ebrahimi -C "Injecting buffered CCS message" \ 10946*62c56f98SSadaf Ebrahimi -C "Remember CCS message" \ 10947*62c56f98SSadaf Ebrahimi -S "Injecting buffered CCS message" \ 10948*62c56f98SSadaf Ebrahimi -S "Remember CCS message" 10949*62c56f98SSadaf Ebrahimi 10950*62c56f98SSadaf Ebrahimirequires_certificate_authentication 10951*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10952*62c56f98SSadaf Ebrahimirun_test "DTLS reordering: Buffer out-of-order CCS message on client"\ 10953*62c56f98SSadaf Ebrahimi -p "$P_PXY delay_srv=NewSessionTicket" \ 10954*62c56f98SSadaf Ebrahimi "$P_SRV dgram_packing=0 cookies=0 dtls=1 debug_level=2 \ 10955*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10956*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 \ 10957*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10958*62c56f98SSadaf Ebrahimi 0 \ 10959*62c56f98SSadaf Ebrahimi -C "Buffering HS message" \ 10960*62c56f98SSadaf Ebrahimi -C "Next handshake message has been buffered - load"\ 10961*62c56f98SSadaf Ebrahimi -S "Buffering HS message" \ 10962*62c56f98SSadaf Ebrahimi -S "Next handshake message has been buffered - load" \ 10963*62c56f98SSadaf Ebrahimi -c "Injecting buffered CCS message" \ 10964*62c56f98SSadaf Ebrahimi -c "Remember CCS message" \ 10965*62c56f98SSadaf Ebrahimi -S "Injecting buffered CCS message" \ 10966*62c56f98SSadaf Ebrahimi -S "Remember CCS message" 10967*62c56f98SSadaf Ebrahimi 10968*62c56f98SSadaf Ebrahimirequires_certificate_authentication 10969*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10970*62c56f98SSadaf Ebrahimirun_test "DTLS reordering: Buffer out-of-order CCS message on server"\ 10971*62c56f98SSadaf Ebrahimi -p "$P_PXY delay_cli=ClientKeyExchange" \ 10972*62c56f98SSadaf Ebrahimi "$P_SRV dgram_packing=0 cookies=0 dtls=1 debug_level=2 \ 10973*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10974*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 \ 10975*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10976*62c56f98SSadaf Ebrahimi 0 \ 10977*62c56f98SSadaf Ebrahimi -C "Buffering HS message" \ 10978*62c56f98SSadaf Ebrahimi -C "Next handshake message has been buffered - load"\ 10979*62c56f98SSadaf Ebrahimi -S "Buffering HS message" \ 10980*62c56f98SSadaf Ebrahimi -S "Next handshake message has been buffered - load" \ 10981*62c56f98SSadaf Ebrahimi -C "Injecting buffered CCS message" \ 10982*62c56f98SSadaf Ebrahimi -C "Remember CCS message" \ 10983*62c56f98SSadaf Ebrahimi -s "Injecting buffered CCS message" \ 10984*62c56f98SSadaf Ebrahimi -s "Remember CCS message" 10985*62c56f98SSadaf Ebrahimi 10986*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 10987*62c56f98SSadaf Ebrahimirun_test "DTLS reordering: Buffer encrypted Finished message" \ 10988*62c56f98SSadaf Ebrahimi -p "$P_PXY delay_ccs=1" \ 10989*62c56f98SSadaf Ebrahimi "$P_SRV dgram_packing=0 cookies=0 dtls=1 debug_level=2 \ 10990*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10991*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 \ 10992*62c56f98SSadaf Ebrahimi hs_timeout=2500-60000" \ 10993*62c56f98SSadaf Ebrahimi 0 \ 10994*62c56f98SSadaf Ebrahimi -s "Buffer record from epoch 1" \ 10995*62c56f98SSadaf Ebrahimi -s "Found buffered record from current epoch - load" \ 10996*62c56f98SSadaf Ebrahimi -c "Buffer record from epoch 1" \ 10997*62c56f98SSadaf Ebrahimi -c "Found buffered record from current epoch - load" 10998*62c56f98SSadaf Ebrahimi 10999*62c56f98SSadaf Ebrahimi# In this test, both the fragmented NewSessionTicket and the ChangeCipherSpec 11000*62c56f98SSadaf Ebrahimi# from the server are delayed, so that the encrypted Finished message 11001*62c56f98SSadaf Ebrahimi# is received and buffered. When the fragmented NewSessionTicket comes 11002*62c56f98SSadaf Ebrahimi# in afterwards, the encrypted Finished message must be freed in order 11003*62c56f98SSadaf Ebrahimi# to make space for the NewSessionTicket to be reassembled. 11004*62c56f98SSadaf Ebrahimi# This works only in very particular circumstances: 11005*62c56f98SSadaf Ebrahimi# - MBEDTLS_SSL_DTLS_MAX_BUFFERING must be large enough to allow buffering 11006*62c56f98SSadaf Ebrahimi# of the NewSessionTicket, but small enough to also allow buffering of 11007*62c56f98SSadaf Ebrahimi# the encrypted Finished message. 11008*62c56f98SSadaf Ebrahimi# - The MTU setting on the server must be so small that the NewSessionTicket 11009*62c56f98SSadaf Ebrahimi# needs to be fragmented. 11010*62c56f98SSadaf Ebrahimi# - All messages sent by the server must be small enough to be either sent 11011*62c56f98SSadaf Ebrahimi# without fragmentation or be reassembled within the bounds of 11012*62c56f98SSadaf Ebrahimi# MBEDTLS_SSL_DTLS_MAX_BUFFERING. Achieve this by testing with a PSK-based 11013*62c56f98SSadaf Ebrahimi# handshake, omitting CRTs. 11014*62c56f98SSadaf Ebrahimirequires_config_value_at_least "MBEDTLS_SSL_DTLS_MAX_BUFFERING" 190 11015*62c56f98SSadaf Ebrahimirequires_config_value_at_most "MBEDTLS_SSL_DTLS_MAX_BUFFERING" 230 11016*62c56f98SSadaf Ebrahimirun_test "DTLS reordering: Buffer encrypted Finished message, drop for fragmented NewSessionTicket" \ 11017*62c56f98SSadaf Ebrahimi -p "$P_PXY delay_srv=NewSessionTicket delay_srv=NewSessionTicket delay_ccs=1" \ 11018*62c56f98SSadaf Ebrahimi "$P_SRV mtu=140 response_size=90 dgram_packing=0 psk=abc123 psk_identity=foo cookies=0 dtls=1 debug_level=2" \ 11019*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 debug_level=2 force_ciphersuite=TLS-PSK-WITH-AES-128-CCM-8 psk=abc123 psk_identity=foo" \ 11020*62c56f98SSadaf Ebrahimi 0 \ 11021*62c56f98SSadaf Ebrahimi -s "Buffer record from epoch 1" \ 11022*62c56f98SSadaf Ebrahimi -s "Found buffered record from current epoch - load" \ 11023*62c56f98SSadaf Ebrahimi -c "Buffer record from epoch 1" \ 11024*62c56f98SSadaf Ebrahimi -C "Found buffered record from current epoch - load" \ 11025*62c56f98SSadaf Ebrahimi -c "Enough space available after freeing future epoch record" 11026*62c56f98SSadaf Ebrahimi 11027*62c56f98SSadaf Ebrahimi# Tests for "randomly unreliable connection": try a variety of flows and peers 11028*62c56f98SSadaf Ebrahimi 11029*62c56f98SSadaf Ebrahimiclient_needs_more_time 2 11030*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d (drop, delay, duplicate), \"short\" PSK handshake" \ 11031*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11032*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 auth_mode=none \ 11033*62c56f98SSadaf Ebrahimi psk=abc123" \ 11034*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 psk=abc123 \ 11035*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-128-CCM-8" \ 11036*62c56f98SSadaf Ebrahimi 0 \ 11037*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11038*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11039*62c56f98SSadaf Ebrahimi 11040*62c56f98SSadaf Ebrahimiclient_needs_more_time 2 11041*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, \"short\" RSA handshake" \ 11042*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11043*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 auth_mode=none" \ 11044*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 \ 11045*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-RSA-WITH-AES-128-CBC-SHA" \ 11046*62c56f98SSadaf Ebrahimi 0 \ 11047*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11048*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11049*62c56f98SSadaf Ebrahimi 11050*62c56f98SSadaf Ebrahimiclient_needs_more_time 2 11051*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11052*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, \"short\" (no ticket, no cli_auth) FS handshake" \ 11053*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11054*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 auth_mode=none" \ 11055*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0" \ 11056*62c56f98SSadaf Ebrahimi 0 \ 11057*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11058*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11059*62c56f98SSadaf Ebrahimi 11060*62c56f98SSadaf Ebrahimiclient_needs_more_time 2 11061*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11062*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, FS, client auth" \ 11063*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11064*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 auth_mode=required" \ 11065*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0" \ 11066*62c56f98SSadaf Ebrahimi 0 \ 11067*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11068*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11069*62c56f98SSadaf Ebrahimi 11070*62c56f98SSadaf Ebrahimiclient_needs_more_time 2 11071*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11072*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, FS, ticket" \ 11073*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11074*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=1 auth_mode=none" \ 11075*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=1" \ 11076*62c56f98SSadaf Ebrahimi 0 \ 11077*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11078*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11079*62c56f98SSadaf Ebrahimi 11080*62c56f98SSadaf Ebrahimiclient_needs_more_time 2 11081*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11082*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, max handshake (FS, ticket + client auth)" \ 11083*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11084*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=1 auth_mode=required" \ 11085*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=1" \ 11086*62c56f98SSadaf Ebrahimi 0 \ 11087*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11088*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11089*62c56f98SSadaf Ebrahimi 11090*62c56f98SSadaf Ebrahimiclient_needs_more_time 2 11091*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11092*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, max handshake, nbio" \ 11093*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11094*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 nbio=2 tickets=1 \ 11095*62c56f98SSadaf Ebrahimi auth_mode=required" \ 11096*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 nbio=2 tickets=1" \ 11097*62c56f98SSadaf Ebrahimi 0 \ 11098*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11099*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11100*62c56f98SSadaf Ebrahimi 11101*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 11102*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 11103*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, min handshake, resumption" \ 11104*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11105*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 auth_mode=none \ 11106*62c56f98SSadaf Ebrahimi psk=abc123 debug_level=3" \ 11107*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 psk=abc123 \ 11108*62c56f98SSadaf Ebrahimi debug_level=3 reconnect=1 skip_close_notify=1 read_timeout=1000 max_resend=10 \ 11109*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-128-CCM-8" \ 11110*62c56f98SSadaf Ebrahimi 0 \ 11111*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 11112*62c56f98SSadaf Ebrahimi -c "a session has been resumed" \ 11113*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11114*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11115*62c56f98SSadaf Ebrahimi 11116*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 11117*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CACHE_C 11118*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, min handshake, resumption, nbio" \ 11119*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11120*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 auth_mode=none \ 11121*62c56f98SSadaf Ebrahimi psk=abc123 debug_level=3 nbio=2" \ 11122*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 psk=abc123 \ 11123*62c56f98SSadaf Ebrahimi debug_level=3 reconnect=1 skip_close_notify=1 read_timeout=1000 max_resend=10 \ 11124*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-128-CCM-8 nbio=2" \ 11125*62c56f98SSadaf Ebrahimi 0 \ 11126*62c56f98SSadaf Ebrahimi -s "a session has been resumed" \ 11127*62c56f98SSadaf Ebrahimi -c "a session has been resumed" \ 11128*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11129*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11130*62c56f98SSadaf Ebrahimi 11131*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 11132*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 11133*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, min handshake, client-initiated renego" \ 11134*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11135*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 auth_mode=none \ 11136*62c56f98SSadaf Ebrahimi psk=abc123 renegotiation=1 debug_level=2" \ 11137*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 psk=abc123 \ 11138*62c56f98SSadaf Ebrahimi renegotiate=1 debug_level=2 \ 11139*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-128-CCM-8" \ 11140*62c56f98SSadaf Ebrahimi 0 \ 11141*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 11142*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 11143*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11144*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11145*62c56f98SSadaf Ebrahimi 11146*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 11147*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 11148*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, min handshake, client-initiated renego, nbio" \ 11149*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11150*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 auth_mode=none \ 11151*62c56f98SSadaf Ebrahimi psk=abc123 renegotiation=1 debug_level=2" \ 11152*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 psk=abc123 \ 11153*62c56f98SSadaf Ebrahimi renegotiate=1 debug_level=2 \ 11154*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-128-CCM-8" \ 11155*62c56f98SSadaf Ebrahimi 0 \ 11156*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 11157*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 11158*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11159*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11160*62c56f98SSadaf Ebrahimi 11161*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 11162*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 11163*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, min handshake, server-initiated renego" \ 11164*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11165*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 auth_mode=none \ 11166*62c56f98SSadaf Ebrahimi psk=abc123 renegotiate=1 renegotiation=1 exchanges=4 \ 11167*62c56f98SSadaf Ebrahimi debug_level=2" \ 11168*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 psk=abc123 \ 11169*62c56f98SSadaf Ebrahimi renegotiation=1 exchanges=4 debug_level=2 \ 11170*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-128-CCM-8" \ 11171*62c56f98SSadaf Ebrahimi 0 \ 11172*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 11173*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 11174*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11175*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11176*62c56f98SSadaf Ebrahimi 11177*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 11178*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_RENEGOTIATION 11179*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, min handshake, server-initiated renego, nbio" \ 11180*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11181*62c56f98SSadaf Ebrahimi "$P_SRV dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 auth_mode=none \ 11182*62c56f98SSadaf Ebrahimi psk=abc123 renegotiate=1 renegotiation=1 exchanges=4 \ 11183*62c56f98SSadaf Ebrahimi debug_level=2 nbio=2" \ 11184*62c56f98SSadaf Ebrahimi "$P_CLI dtls=1 dgram_packing=0 hs_timeout=500-10000 tickets=0 psk=abc123 \ 11185*62c56f98SSadaf Ebrahimi renegotiation=1 exchanges=4 debug_level=2 nbio=2 \ 11186*62c56f98SSadaf Ebrahimi force_ciphersuite=TLS-PSK-WITH-AES-128-CCM-8" \ 11187*62c56f98SSadaf Ebrahimi 0 \ 11188*62c56f98SSadaf Ebrahimi -c "=> renegotiate" \ 11189*62c56f98SSadaf Ebrahimi -s "=> renegotiate" \ 11190*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11191*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11192*62c56f98SSadaf Ebrahimi 11193*62c56f98SSadaf Ebrahimi## The three tests below require 1.1.1a or higher version of openssl, otherwise 11194*62c56f98SSadaf Ebrahimi## it might trigger a bug due to openssl (https://github.com/openssl/openssl/issues/6902) 11195*62c56f98SSadaf Ebrahimi## Besides, openssl should use dtls1_2 or dtls, otherwise it will cause "SSL alert number 70" error 11196*62c56f98SSadaf Ebrahimirequires_openssl_next 11197*62c56f98SSadaf Ebrahimiclient_needs_more_time 6 11198*62c56f98SSadaf Ebrahiminot_with_valgrind # risk of non-mbedtls peer timing out 11199*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11200*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, openssl server" \ 11201*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5 protect_hvr=1" \ 11202*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -dtls1_2 -mtu 2048" \ 11203*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 hs_timeout=500-60000 tickets=0" \ 11204*62c56f98SSadaf Ebrahimi 0 \ 11205*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11206*62c56f98SSadaf Ebrahimi 11207*62c56f98SSadaf Ebrahimirequires_openssl_next 11208*62c56f98SSadaf Ebrahimiclient_needs_more_time 8 11209*62c56f98SSadaf Ebrahiminot_with_valgrind # risk of non-mbedtls peer timing out 11210*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11211*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, openssl server, fragmentation" \ 11212*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5 protect_hvr=1" \ 11213*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -dtls1_2 -mtu 768" \ 11214*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 hs_timeout=500-60000 tickets=0" \ 11215*62c56f98SSadaf Ebrahimi 0 \ 11216*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11217*62c56f98SSadaf Ebrahimi 11218*62c56f98SSadaf Ebrahimirequires_openssl_next 11219*62c56f98SSadaf Ebrahimiclient_needs_more_time 8 11220*62c56f98SSadaf Ebrahiminot_with_valgrind # risk of non-mbedtls peer timing out 11221*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11222*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, openssl server, fragmentation, nbio" \ 11223*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5 protect_hvr=1" \ 11224*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -dtls1_2 -mtu 768" \ 11225*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 hs_timeout=500-60000 nbio=2 tickets=0" \ 11226*62c56f98SSadaf Ebrahimi 0 \ 11227*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11228*62c56f98SSadaf Ebrahimi 11229*62c56f98SSadaf Ebrahimirequires_gnutls 11230*62c56f98SSadaf Ebrahimiclient_needs_more_time 6 11231*62c56f98SSadaf Ebrahiminot_with_valgrind # risk of non-mbedtls peer timing out 11232*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11233*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, gnutls server" \ 11234*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11235*62c56f98SSadaf Ebrahimi "$G_SRV -u --mtu 2048 -a" \ 11236*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 hs_timeout=500-60000" \ 11237*62c56f98SSadaf Ebrahimi 0 \ 11238*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11239*62c56f98SSadaf Ebrahimi -c "Extra-header:" 11240*62c56f98SSadaf Ebrahimi 11241*62c56f98SSadaf Ebrahimirequires_gnutls_next 11242*62c56f98SSadaf Ebrahimiclient_needs_more_time 8 11243*62c56f98SSadaf Ebrahiminot_with_valgrind # risk of non-mbedtls peer timing out 11244*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11245*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, gnutls server, fragmentation" \ 11246*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11247*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV -u --mtu 512" \ 11248*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 hs_timeout=500-60000" \ 11249*62c56f98SSadaf Ebrahimi 0 \ 11250*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11251*62c56f98SSadaf Ebrahimi -c "Extra-header:" 11252*62c56f98SSadaf Ebrahimi 11253*62c56f98SSadaf Ebrahimirequires_gnutls_next 11254*62c56f98SSadaf Ebrahimiclient_needs_more_time 8 11255*62c56f98SSadaf Ebrahiminot_with_valgrind # risk of non-mbedtls peer timing out 11256*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11257*62c56f98SSadaf Ebrahimirun_test "DTLS proxy: 3d, gnutls server, fragmentation, nbio" \ 11258*62c56f98SSadaf Ebrahimi -p "$P_PXY drop=5 delay=5 duplicate=5" \ 11259*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV -u --mtu 512" \ 11260*62c56f98SSadaf Ebrahimi "$P_CLI dgram_packing=0 dtls=1 hs_timeout=500-60000 nbio=2" \ 11261*62c56f98SSadaf Ebrahimi 0 \ 11262*62c56f98SSadaf Ebrahimi -s "Extra-header:" \ 11263*62c56f98SSadaf Ebrahimi -c "Extra-header:" 11264*62c56f98SSadaf Ebrahimi 11265*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 11266*62c56f98SSadaf Ebrahimirun_test "export keys functionality" \ 11267*62c56f98SSadaf Ebrahimi "$P_SRV eap_tls=1 debug_level=3" \ 11268*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls12 eap_tls=1 debug_level=3" \ 11269*62c56f98SSadaf Ebrahimi 0 \ 11270*62c56f98SSadaf Ebrahimi -c "EAP-TLS key material is:"\ 11271*62c56f98SSadaf Ebrahimi -s "EAP-TLS key material is:"\ 11272*62c56f98SSadaf Ebrahimi -c "EAP-TLS IV is:" \ 11273*62c56f98SSadaf Ebrahimi -s "EAP-TLS IV is:" 11274*62c56f98SSadaf Ebrahimi 11275*62c56f98SSadaf Ebrahimi# openssl feature tests: check if tls1.3 exists. 11276*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3 11277*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Test openssl tls1_3 feature" \ 11278*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -tls1_3 -msg" \ 11279*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -tls1_3 -msg" \ 11280*62c56f98SSadaf Ebrahimi 0 \ 11281*62c56f98SSadaf Ebrahimi -c "TLS 1.3" \ 11282*62c56f98SSadaf Ebrahimi -s "TLS 1.3" 11283*62c56f98SSadaf Ebrahimi 11284*62c56f98SSadaf Ebrahimi# gnutls feature tests: check if TLS 1.3 is supported as well as the NO_TICKETS and DISABLE_TLS13_COMPAT_MODE options. 11285*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11286*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11287*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 11288*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Test gnutls tls1_3 feature" \ 11289*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE --disable-client-cert " \ 11290*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ 11291*62c56f98SSadaf Ebrahimi 0 \ 11292*62c56f98SSadaf Ebrahimi -s "Version: TLS1.3" \ 11293*62c56f98SSadaf Ebrahimi -c "Version: TLS1.3" 11294*62c56f98SSadaf Ebrahimi 11295*62c56f98SSadaf Ebrahimi# TLS1.3 test cases 11296*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 11297*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11298*62c56f98SSadaf Ebrahimirequires_ciphersuite_enabled TLS1-3-CHACHA20-POLY1305-SHA256 11299*62c56f98SSadaf Ebrahimirequires_any_configs_enabled "PSA_WANT_ECC_MONTGOMERY_255" 11300*62c56f98SSadaf Ebrahimirequires_any_configs_enabled "PSA_WANT_ECC_SECP_R1_256" 11301*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Default" \ 11302*62c56f98SSadaf Ebrahimi "$P_SRV allow_sha1=0 debug_level=3 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13" \ 11303*62c56f98SSadaf Ebrahimi "$P_CLI allow_sha1=0" \ 11304*62c56f98SSadaf Ebrahimi 0 \ 11305*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 11306*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS1-3-CHACHA20-POLY1305-SHA256" \ 11307*62c56f98SSadaf Ebrahimi -s "ECDH/FFDH group: " \ 11308*62c56f98SSadaf Ebrahimi -s "selected signature algorithm ecdsa_secp256r1_sha256" 11309*62c56f98SSadaf Ebrahimi 11310*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11311*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11312*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11313*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11314*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11315*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: minimal feature sets - openssl" \ 11316*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ 11317*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 11318*62c56f98SSadaf Ebrahimi 0 \ 11319*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_HELLO_REQUEST" \ 11320*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_HELLO" \ 11321*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 11322*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_REQUEST" \ 11323*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 11324*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_VERIFY" \ 11325*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_FINISHED" \ 11326*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_FINISHED" \ 11327*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_FLUSH_BUFFERS" \ 11328*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" \ 11329*62c56f98SSadaf Ebrahimi -c "<= ssl_tls13_process_server_hello" \ 11330*62c56f98SSadaf Ebrahimi -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ 11331*62c56f98SSadaf Ebrahimi -c "DHE group name: " \ 11332*62c56f98SSadaf Ebrahimi -c "=> ssl_tls13_process_server_hello" \ 11333*62c56f98SSadaf Ebrahimi -c "<= parse encrypted extensions" \ 11334*62c56f98SSadaf Ebrahimi -c "Certificate verification flags clear" \ 11335*62c56f98SSadaf Ebrahimi -c "=> parse certificate verify" \ 11336*62c56f98SSadaf Ebrahimi -c "<= parse certificate verify" \ 11337*62c56f98SSadaf Ebrahimi -c "mbedtls_ssl_tls13_process_certificate_verify() returned 0" \ 11338*62c56f98SSadaf Ebrahimi -c "<= parse finished message" \ 11339*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 11340*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 ok" 11341*62c56f98SSadaf Ebrahimi 11342*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11343*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11344*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11345*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11346*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11347*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11348*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: minimal feature sets - gnutls" \ 11349*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ 11350*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3" \ 11351*62c56f98SSadaf Ebrahimi 0 \ 11352*62c56f98SSadaf Ebrahimi -s "SERVER HELLO was queued" \ 11353*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_HELLO_REQUEST" \ 11354*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_HELLO" \ 11355*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 11356*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_REQUEST" \ 11357*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 11358*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_VERIFY" \ 11359*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_FINISHED" \ 11360*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_FINISHED" \ 11361*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_FLUSH_BUFFERS" \ 11362*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" \ 11363*62c56f98SSadaf Ebrahimi -c "<= ssl_tls13_process_server_hello" \ 11364*62c56f98SSadaf Ebrahimi -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ 11365*62c56f98SSadaf Ebrahimi -c "DHE group name: " \ 11366*62c56f98SSadaf Ebrahimi -c "=> ssl_tls13_process_server_hello" \ 11367*62c56f98SSadaf Ebrahimi -c "<= parse encrypted extensions" \ 11368*62c56f98SSadaf Ebrahimi -c "Certificate verification flags clear" \ 11369*62c56f98SSadaf Ebrahimi -c "=> parse certificate verify" \ 11370*62c56f98SSadaf Ebrahimi -c "<= parse certificate verify" \ 11371*62c56f98SSadaf Ebrahimi -c "mbedtls_ssl_tls13_process_certificate_verify() returned 0" \ 11372*62c56f98SSadaf Ebrahimi -c "<= parse finished message" \ 11373*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 11374*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 11375*62c56f98SSadaf Ebrahimi 11376*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11377*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11378*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11379*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ALPN 11380*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11381*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11382*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: alpn - openssl" \ 11383*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -alpn h2" \ 11384*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 alpn=h2" \ 11385*62c56f98SSadaf Ebrahimi 0 \ 11386*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_HELLO_REQUEST" \ 11387*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_HELLO" \ 11388*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 11389*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_REQUEST" \ 11390*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 11391*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_VERIFY" \ 11392*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_FINISHED" \ 11393*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_FINISHED" \ 11394*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_FLUSH_BUFFERS" \ 11395*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" \ 11396*62c56f98SSadaf Ebrahimi -c "<= ssl_tls13_process_server_hello" \ 11397*62c56f98SSadaf Ebrahimi -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ 11398*62c56f98SSadaf Ebrahimi -c "DHE group name: " \ 11399*62c56f98SSadaf Ebrahimi -c "=> ssl_tls13_process_server_hello" \ 11400*62c56f98SSadaf Ebrahimi -c "<= parse encrypted extensions" \ 11401*62c56f98SSadaf Ebrahimi -c "Certificate verification flags clear" \ 11402*62c56f98SSadaf Ebrahimi -c "=> parse certificate verify" \ 11403*62c56f98SSadaf Ebrahimi -c "<= parse certificate verify" \ 11404*62c56f98SSadaf Ebrahimi -c "mbedtls_ssl_tls13_process_certificate_verify() returned 0" \ 11405*62c56f98SSadaf Ebrahimi -c "<= parse finished message" \ 11406*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 11407*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 ok" \ 11408*62c56f98SSadaf Ebrahimi -c "Application Layer Protocol is h2" 11409*62c56f98SSadaf Ebrahimi 11410*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11411*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11412*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11413*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11414*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ALPN 11415*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11416*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11417*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: alpn - gnutls" \ 11418*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert --alpn=h2" \ 11419*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 alpn=h2" \ 11420*62c56f98SSadaf Ebrahimi 0 \ 11421*62c56f98SSadaf Ebrahimi -s "SERVER HELLO was queued" \ 11422*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_HELLO_REQUEST" \ 11423*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_HELLO" \ 11424*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 11425*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_REQUEST" \ 11426*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 11427*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_VERIFY" \ 11428*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_SERVER_FINISHED" \ 11429*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_FINISHED" \ 11430*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_FLUSH_BUFFERS" \ 11431*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" \ 11432*62c56f98SSadaf Ebrahimi -c "<= ssl_tls13_process_server_hello" \ 11433*62c56f98SSadaf Ebrahimi -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ 11434*62c56f98SSadaf Ebrahimi -c "DHE group name: " \ 11435*62c56f98SSadaf Ebrahimi -c "=> ssl_tls13_process_server_hello" \ 11436*62c56f98SSadaf Ebrahimi -c "<= parse encrypted extensions" \ 11437*62c56f98SSadaf Ebrahimi -c "Certificate verification flags clear" \ 11438*62c56f98SSadaf Ebrahimi -c "=> parse certificate verify" \ 11439*62c56f98SSadaf Ebrahimi -c "<= parse certificate verify" \ 11440*62c56f98SSadaf Ebrahimi -c "mbedtls_ssl_tls13_process_certificate_verify() returned 0" \ 11441*62c56f98SSadaf Ebrahimi -c "<= parse finished message" \ 11442*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 11443*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 11444*62c56f98SSadaf Ebrahimi -c "Application Layer Protocol is h2" 11445*62c56f98SSadaf Ebrahimi 11446*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11447*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11448*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 11449*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ALPN 11450*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11451*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: server alpn - openssl" \ 11452*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=0 crt_file=data_files/server5.crt key_file=data_files/server5.key alpn=h2" \ 11453*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -tls1_3 -no_middlebox -alpn h2" \ 11454*62c56f98SSadaf Ebrahimi 0 \ 11455*62c56f98SSadaf Ebrahimi -s "found alpn extension" \ 11456*62c56f98SSadaf Ebrahimi -s "server side, adding alpn extension" \ 11457*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 11458*62c56f98SSadaf Ebrahimi -s "HTTP/1.0 200 OK" \ 11459*62c56f98SSadaf Ebrahimi -s "Application Layer Protocol is h2" 11460*62c56f98SSadaf Ebrahimi 11461*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11462*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11463*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 11464*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_ALPN 11465*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11466*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: server alpn - gnutls" \ 11467*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=3 tickets=0 crt_file=data_files/server5.crt key_file=data_files/server5.key alpn=h2" \ 11468*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V --alpn h2" \ 11469*62c56f98SSadaf Ebrahimi 0 \ 11470*62c56f98SSadaf Ebrahimi -s "found alpn extension" \ 11471*62c56f98SSadaf Ebrahimi -s "server side, adding alpn extension" \ 11472*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 11473*62c56f98SSadaf Ebrahimi -s "HTTP/1.0 200 OK" \ 11474*62c56f98SSadaf Ebrahimi -s "Application Layer Protocol is h2" 11475*62c56f98SSadaf Ebrahimi 11476*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 11477*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11478*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11479*62c56f98SSadaf Ebrahimiskip_handshake_stage_check 11480*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11481*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Not supported version check:gnutls: srv max TLS 1.0" \ 11482*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0 -d 4" \ 11483*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 11484*62c56f98SSadaf Ebrahimi 1 \ 11485*62c56f98SSadaf Ebrahimi -s "Client's version: 3.3" \ 11486*62c56f98SSadaf Ebrahimi -S "Version: TLS1.0" \ 11487*62c56f98SSadaf Ebrahimi -C "Protocol is TLSv1.0" 11488*62c56f98SSadaf Ebrahimi 11489*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 11490*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11491*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11492*62c56f98SSadaf Ebrahimiskip_handshake_stage_check 11493*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11494*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Not supported version check:gnutls: srv max TLS 1.1" \ 11495*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1 -d 4" \ 11496*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 11497*62c56f98SSadaf Ebrahimi 1 \ 11498*62c56f98SSadaf Ebrahimi -s "Client's version: 3.3" \ 11499*62c56f98SSadaf Ebrahimi -S "Version: TLS1.1" \ 11500*62c56f98SSadaf Ebrahimi -C "Protocol is TLSv1.1" 11501*62c56f98SSadaf Ebrahimi 11502*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 11503*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11504*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11505*62c56f98SSadaf Ebrahimiskip_handshake_stage_check 11506*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11507*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Not supported version check:gnutls: srv max TLS 1.2" \ 11508*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 -d 4" \ 11509*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls13 debug_level=4" \ 11510*62c56f98SSadaf Ebrahimi 1 \ 11511*62c56f98SSadaf Ebrahimi -s "Client's version: 3.3" \ 11512*62c56f98SSadaf Ebrahimi -c "is a fatal alert message (msg 40)" \ 11513*62c56f98SSadaf Ebrahimi -S "Version: TLS1.2" \ 11514*62c56f98SSadaf Ebrahimi -C "Protocol is TLSv1.2" 11515*62c56f98SSadaf Ebrahimi 11516*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 11517*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11518*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11519*62c56f98SSadaf Ebrahimiskip_handshake_stage_check 11520*62c56f98SSadaf Ebrahimirequires_openssl_next 11521*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Not supported version check:openssl: srv max TLS 1.0" \ 11522*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1" \ 11523*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 11524*62c56f98SSadaf Ebrahimi 1 \ 11525*62c56f98SSadaf Ebrahimi -s "fatal protocol_version" \ 11526*62c56f98SSadaf Ebrahimi -c "is a fatal alert message (msg 70)" \ 11527*62c56f98SSadaf Ebrahimi -S "Version: TLS1.0" \ 11528*62c56f98SSadaf Ebrahimi -C "Protocol : TLSv1.0" 11529*62c56f98SSadaf Ebrahimi 11530*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 11531*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11532*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11533*62c56f98SSadaf Ebrahimiskip_handshake_stage_check 11534*62c56f98SSadaf Ebrahimirequires_openssl_next 11535*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Not supported version check:openssl: srv max TLS 1.1" \ 11536*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_1" \ 11537*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 11538*62c56f98SSadaf Ebrahimi 1 \ 11539*62c56f98SSadaf Ebrahimi -s "fatal protocol_version" \ 11540*62c56f98SSadaf Ebrahimi -c "is a fatal alert message (msg 70)" \ 11541*62c56f98SSadaf Ebrahimi -S "Version: TLS1.1" \ 11542*62c56f98SSadaf Ebrahimi -C "Protocol : TLSv1.1" 11543*62c56f98SSadaf Ebrahimi 11544*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 11545*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11546*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11547*62c56f98SSadaf Ebrahimiskip_handshake_stage_check 11548*62c56f98SSadaf Ebrahimirequires_openssl_next 11549*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Not supported version check:openssl: srv max TLS 1.2" \ 11550*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_2" \ 11551*62c56f98SSadaf Ebrahimi "$P_CLI force_version=tls13 debug_level=4" \ 11552*62c56f98SSadaf Ebrahimi 1 \ 11553*62c56f98SSadaf Ebrahimi -s "fatal protocol_version" \ 11554*62c56f98SSadaf Ebrahimi -c "is a fatal alert message (msg 70)" \ 11555*62c56f98SSadaf Ebrahimi -S "Version: TLS1.2" \ 11556*62c56f98SSadaf Ebrahimi -C "Protocol : TLSv1.2" 11557*62c56f98SSadaf Ebrahimi 11558*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11559*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11560*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11561*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11562*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11563*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, no client certificate - openssl" \ 11564*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -verify 10" \ 11565*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=none key_file=none" \ 11566*62c56f98SSadaf Ebrahimi 0 \ 11567*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11568*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11569*62c56f98SSadaf Ebrahimi -s "TLS 1.3" \ 11570*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 ok" \ 11571*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11572*62c56f98SSadaf Ebrahimi 11573*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11574*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11575*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11576*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11577*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11578*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11579*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, no client certificate - gnutls" \ 11580*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --verify-client-cert" \ 11581*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=none key_file=none" \ 11582*62c56f98SSadaf Ebrahimi 0 \ 11583*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11584*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE"\ 11585*62c56f98SSadaf Ebrahimi -s "Version: TLS1.3" \ 11586*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 11587*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11588*62c56f98SSadaf Ebrahimi 11589*62c56f98SSadaf Ebrahimi 11590*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11591*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11592*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11593*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11594*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, no server middlebox compat - openssl" \ 11595*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -no_middlebox" \ 11596*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/cli2.crt key_file=data_files/cli2.key" \ 11597*62c56f98SSadaf Ebrahimi 0 \ 11598*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11599*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11600*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11601*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11602*62c56f98SSadaf Ebrahimi 11603*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11604*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11605*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11606*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11607*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11608*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, no server middlebox compat - gnutls" \ 11609*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE" \ 11610*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/cli2.crt \ 11611*62c56f98SSadaf Ebrahimi key_file=data_files/cli2.key" \ 11612*62c56f98SSadaf Ebrahimi 0 \ 11613*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11614*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11615*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11616*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11617*62c56f98SSadaf Ebrahimi 11618*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11619*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11620*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11621*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11622*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11623*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - openssl" \ 11624*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 11625*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp256r1.crt \ 11626*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp256r1.key" \ 11627*62c56f98SSadaf Ebrahimi 0 \ 11628*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11629*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11630*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11631*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11632*62c56f98SSadaf Ebrahimi 11633*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11634*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11635*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11636*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11637*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11638*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11639*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - gnutls" \ 11640*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 11641*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp256r1.crt \ 11642*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp256r1.key" \ 11643*62c56f98SSadaf Ebrahimi 0 \ 11644*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11645*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11646*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11647*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11648*62c56f98SSadaf Ebrahimi 11649*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11650*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11651*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11652*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11653*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11654*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - openssl" \ 11655*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 11656*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp384r1.crt \ 11657*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp384r1.key" \ 11658*62c56f98SSadaf Ebrahimi 0 \ 11659*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11660*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11661*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11662*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11663*62c56f98SSadaf Ebrahimi 11664*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11665*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11666*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11667*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11668*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11669*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11670*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - gnutls" \ 11671*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 11672*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp384r1.crt \ 11673*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp384r1.key" \ 11674*62c56f98SSadaf Ebrahimi 0 \ 11675*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11676*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11677*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11678*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11679*62c56f98SSadaf Ebrahimi 11680*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11681*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11682*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11683*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11684*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11685*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - openssl" \ 11686*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 11687*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp521r1.crt \ 11688*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp521r1.key" \ 11689*62c56f98SSadaf Ebrahimi 0 \ 11690*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11691*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11692*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11693*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11694*62c56f98SSadaf Ebrahimi 11695*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11696*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11697*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11698*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11699*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11700*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11701*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - gnutls" \ 11702*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 11703*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ 11704*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp521r1.key" \ 11705*62c56f98SSadaf Ebrahimi 0 \ 11706*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11707*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11708*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11709*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11710*62c56f98SSadaf Ebrahimi 11711*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11712*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11713*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11714*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 11715*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11716*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11717*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - openssl" \ 11718*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 11719*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ 11720*62c56f98SSadaf Ebrahimi key_file=data_files/server1.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha256" \ 11721*62c56f98SSadaf Ebrahimi 0 \ 11722*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11723*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11724*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11725*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11726*62c56f98SSadaf Ebrahimi 11727*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11728*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11729*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11730*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11731*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 11732*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11733*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11734*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - gnutls" \ 11735*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 11736*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ 11737*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha256" \ 11738*62c56f98SSadaf Ebrahimi 0 \ 11739*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11740*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11741*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11742*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11743*62c56f98SSadaf Ebrahimi 11744*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11745*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11746*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11747*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 11748*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11749*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11750*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - openssl" \ 11751*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 11752*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ 11753*62c56f98SSadaf Ebrahimi key_file=data_files/server1.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha384" \ 11754*62c56f98SSadaf Ebrahimi 0 \ 11755*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11756*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11757*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11758*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11759*62c56f98SSadaf Ebrahimi 11760*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11761*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11762*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11763*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11764*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 11765*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11766*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11767*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - gnutls" \ 11768*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 11769*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ 11770*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha384" \ 11771*62c56f98SSadaf Ebrahimi 0 \ 11772*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11773*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11774*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11775*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11776*62c56f98SSadaf Ebrahimi 11777*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11778*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11779*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11780*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 11781*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11782*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11783*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - openssl" \ 11784*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 11785*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ 11786*62c56f98SSadaf Ebrahimi key_file=data_files/server1.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha512" \ 11787*62c56f98SSadaf Ebrahimi 0 \ 11788*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11789*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11790*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11791*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11792*62c56f98SSadaf Ebrahimi 11793*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11794*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11795*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11796*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11797*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 11798*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11799*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11800*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - gnutls" \ 11801*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 11802*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ 11803*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha512" \ 11804*62c56f98SSadaf Ebrahimi 0 \ 11805*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11806*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11807*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11808*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11809*62c56f98SSadaf Ebrahimi 11810*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11811*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11812*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11813*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 11814*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11815*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11816*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, client alg not in server list - openssl" \ 11817*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 11818*62c56f98SSadaf Ebrahimi -sigalgs ecdsa_secp256r1_sha256" \ 11819*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ 11820*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp521r1.key sig_algs=ecdsa_secp256r1_sha256,ecdsa_secp521r1_sha512" \ 11821*62c56f98SSadaf Ebrahimi 1 \ 11822*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11823*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11824*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11825*62c56f98SSadaf Ebrahimi -c "no suitable signature algorithm" 11826*62c56f98SSadaf Ebrahimi 11827*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11828*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11829*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11830*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11831*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 11832*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11833*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11834*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication, client alg not in server list - gnutls" \ 11835*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:%NO_TICKETS" \ 11836*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ 11837*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp521r1.key sig_algs=ecdsa_secp256r1_sha256,ecdsa_secp521r1_sha512" \ 11838*62c56f98SSadaf Ebrahimi 1 \ 11839*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11840*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11841*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11842*62c56f98SSadaf Ebrahimi -c "no suitable signature algorithm" 11843*62c56f98SSadaf Ebrahimi 11844*62c56f98SSadaf Ebrahimi# Test using an opaque private key for client authentication 11845*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11846*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11847*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11848*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 11849*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11850*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, no server middlebox compat - openssl" \ 11851*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -no_middlebox" \ 11852*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/cli2.crt key_file=data_files/cli2.key key_opaque=1" \ 11853*62c56f98SSadaf Ebrahimi 0 \ 11854*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11855*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11856*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11857*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11858*62c56f98SSadaf Ebrahimi 11859*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11860*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11861*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11862*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11863*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 11864*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11865*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, no server middlebox compat - gnutls" \ 11866*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE" \ 11867*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/cli2.crt \ 11868*62c56f98SSadaf Ebrahimi key_file=data_files/cli2.key key_opaque=1" \ 11869*62c56f98SSadaf Ebrahimi 0 \ 11870*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11871*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11872*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11873*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11874*62c56f98SSadaf Ebrahimi 11875*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11876*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11877*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11878*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 11879*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11880*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11881*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 - openssl" \ 11882*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 11883*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp256r1.crt \ 11884*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp256r1.key key_opaque=1" \ 11885*62c56f98SSadaf Ebrahimi 0 \ 11886*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11887*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11888*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11889*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11890*62c56f98SSadaf Ebrahimi 11891*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11892*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11893*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11894*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11895*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 11896*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11897*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11898*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 - gnutls" \ 11899*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 11900*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp256r1.crt \ 11901*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp256r1.key key_opaque=1" \ 11902*62c56f98SSadaf Ebrahimi 0 \ 11903*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11904*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11905*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11906*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11907*62c56f98SSadaf Ebrahimi 11908*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11909*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11910*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11911*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 11912*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11913*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11914*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 - openssl" \ 11915*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 11916*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp384r1.crt \ 11917*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp384r1.key key_opaque=1" \ 11918*62c56f98SSadaf Ebrahimi 0 \ 11919*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11920*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11921*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11922*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11923*62c56f98SSadaf Ebrahimi 11924*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11925*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11926*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11927*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11928*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 11929*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11930*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11931*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 - gnutls" \ 11932*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 11933*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp384r1.crt \ 11934*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp384r1.key key_opaque=1" \ 11935*62c56f98SSadaf Ebrahimi 0 \ 11936*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11937*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11938*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11939*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11940*62c56f98SSadaf Ebrahimi 11941*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11942*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11943*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11944*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 11945*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11946*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11947*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 - openssl" \ 11948*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 11949*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp521r1.crt \ 11950*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp521r1.key key_opaque=1" \ 11951*62c56f98SSadaf Ebrahimi 0 \ 11952*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11953*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11954*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11955*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11956*62c56f98SSadaf Ebrahimi 11957*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11958*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11959*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11960*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11961*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 11962*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11963*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11964*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 - gnutls" \ 11965*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 11966*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ 11967*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp521r1.key key_opaque=1" \ 11968*62c56f98SSadaf Ebrahimi 0 \ 11969*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11970*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11971*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11972*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11973*62c56f98SSadaf Ebrahimi 11974*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 11975*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11976*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11977*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 11978*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 11979*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11980*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11981*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - openssl" \ 11982*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 11983*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ 11984*62c56f98SSadaf Ebrahimi key_file=data_files/server1.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha256 key_opaque=1" \ 11985*62c56f98SSadaf Ebrahimi 0 \ 11986*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 11987*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 11988*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 11989*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 11990*62c56f98SSadaf Ebrahimi 11991*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 11992*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 11993*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 11994*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 11995*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 11996*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 11997*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 11998*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 11999*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - gnutls" \ 12000*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 12001*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ 12002*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha256 key_opaque=1" \ 12003*62c56f98SSadaf Ebrahimi 0 \ 12004*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 12005*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 12006*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 12007*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 12008*62c56f98SSadaf Ebrahimi 12009*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12010*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12011*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12012*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 12013*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 12014*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12015*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12016*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - openssl" \ 12017*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 12018*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ 12019*62c56f98SSadaf Ebrahimi key_file=data_files/server1.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha384 key_opaque=1" \ 12020*62c56f98SSadaf Ebrahimi 0 \ 12021*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 12022*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 12023*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 12024*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 12025*62c56f98SSadaf Ebrahimi 12026*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12027*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12028*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12029*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12030*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 12031*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 12032*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12033*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12034*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - gnutls" \ 12035*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 12036*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ 12037*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha384 key_opaque=1" \ 12038*62c56f98SSadaf Ebrahimi 0 \ 12039*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 12040*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 12041*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 12042*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 12043*62c56f98SSadaf Ebrahimi 12044*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12045*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12046*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12047*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 12048*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 12049*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12050*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12051*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - openssl" \ 12052*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ 12053*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ 12054*62c56f98SSadaf Ebrahimi key_file=data_files/server1.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha512 key_opaque=1" \ 12055*62c56f98SSadaf Ebrahimi 0 \ 12056*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 12057*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 12058*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 12059*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 12060*62c56f98SSadaf Ebrahimi 12061*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12062*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12063*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12064*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12065*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 12066*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 12067*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12068*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12069*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - gnutls" \ 12070*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ 12071*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ 12072*62c56f98SSadaf Ebrahimi key_file=data_files/server2.key sig_algs=ecdsa_secp256r1_sha256,rsa_pss_rsae_sha512 key_opaque=1" \ 12073*62c56f98SSadaf Ebrahimi 0 \ 12074*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 12075*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 12076*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 12077*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" 12078*62c56f98SSadaf Ebrahimi 12079*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12080*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12081*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12082*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 12083*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 12084*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12085*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12086*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, client alg not in server list - openssl" \ 12087*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 12088*62c56f98SSadaf Ebrahimi -sigalgs ecdsa_secp256r1_sha256" \ 12089*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ 12090*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp521r1.key sig_algs=ecdsa_secp256r1_sha256,ecdsa_secp521r1_sha512 key_opaque=1" \ 12091*62c56f98SSadaf Ebrahimi 1 \ 12092*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 12093*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 12094*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 12095*62c56f98SSadaf Ebrahimi -c "no suitable signature algorithm" 12096*62c56f98SSadaf Ebrahimi 12097*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12098*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12099*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12100*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12101*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_RSA_C 12102*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_USE_PSA_CRYPTO 12103*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12104*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12105*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Client authentication - opaque key, client alg not in server list - gnutls" \ 12106*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:%NO_TICKETS" \ 12107*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ 12108*62c56f98SSadaf Ebrahimi key_file=data_files/ecdsa_secp521r1.key sig_algs=ecdsa_secp256r1_sha256,ecdsa_secp521r1_sha512 key_opaque=1" \ 12109*62c56f98SSadaf Ebrahimi 1 \ 12110*62c56f98SSadaf Ebrahimi -c "got a certificate request" \ 12111*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ 12112*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ 12113*62c56f98SSadaf Ebrahimi -c "no suitable signature algorithm" 12114*62c56f98SSadaf Ebrahimi 12115*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12116*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12117*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12118*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12119*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12120*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - openssl" \ 12121*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ 12122*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12123*62c56f98SSadaf Ebrahimi 0 \ 12124*62c56f98SSadaf Ebrahimi -c "received HelloRetryRequest message" \ 12125*62c56f98SSadaf Ebrahimi -c "<= ssl_tls13_process_server_hello ( HelloRetryRequest )" \ 12126*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_HELLO" \ 12127*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12128*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 ok" 12129*62c56f98SSadaf Ebrahimi 12130*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12131*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12132*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12133*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12134*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12135*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - openssl" \ 12136*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ 12137*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12138*62c56f98SSadaf Ebrahimi 0 \ 12139*62c56f98SSadaf Ebrahimi -c "received HelloRetryRequest message" \ 12140*62c56f98SSadaf Ebrahimi -c "<= ssl_tls13_process_server_hello ( HelloRetryRequest )" \ 12141*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_HELLO" \ 12142*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12143*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 ok" 12144*62c56f98SSadaf Ebrahimi 12145*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12146*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12147*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12148*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12149*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_ECDH 12150*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12151*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12152*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - gnutls" \ 12153*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV -d 4 --priority=NONE:+GROUP-SECP256R1:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ 12154*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12155*62c56f98SSadaf Ebrahimi 0 \ 12156*62c56f98SSadaf Ebrahimi -c "received HelloRetryRequest message" \ 12157*62c56f98SSadaf Ebrahimi -c "<= ssl_tls13_process_server_hello ( HelloRetryRequest )" \ 12158*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_HELLO" \ 12159*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12160*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 12161*62c56f98SSadaf Ebrahimi 12162*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12163*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12164*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12165*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12166*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_ECDH 12167*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12168*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12169*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - gnutls" \ 12170*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV -d 4 --priority=NONE:+GROUP-SECP256R1:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ 12171*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12172*62c56f98SSadaf Ebrahimi 0 \ 12173*62c56f98SSadaf Ebrahimi -c "received HelloRetryRequest message" \ 12174*62c56f98SSadaf Ebrahimi -c "<= ssl_tls13_process_server_hello ( HelloRetryRequest )" \ 12175*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CLIENT_HELLO" \ 12176*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12177*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 12178*62c56f98SSadaf Ebrahimi 12179*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12180*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12181*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12182*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12183*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - openssl" \ 12184*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12185*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -debug -tls1_3 -no_middlebox" \ 12186*62c56f98SSadaf Ebrahimi 0 \ 12187*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_HELLO" \ 12188*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_HELLO" \ 12189*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 12190*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 12191*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CERTIFICATE_VERIFY" \ 12192*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_FINISHED" \ 12193*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_FINISHED" \ 12194*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" 12195*62c56f98SSadaf Ebrahimi 12196*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12197*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12198*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12199*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12200*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - openssl with client authentication" \ 12201*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12202*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -debug -cert data_files/server5.crt -key data_files/server5.key -tls1_3 -no_middlebox" \ 12203*62c56f98SSadaf Ebrahimi 0 \ 12204*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_HELLO" \ 12205*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_HELLO" \ 12206*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 12207*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CERTIFICATE_REQUEST" \ 12208*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 12209*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CERTIFICATE_VERIFY" \ 12210*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_FINISHED" \ 12211*62c56f98SSadaf Ebrahimi -s "=> write certificate request" \ 12212*62c56f98SSadaf Ebrahimi -s "=> parse client hello" \ 12213*62c56f98SSadaf Ebrahimi -s "<= parse client hello" 12214*62c56f98SSadaf Ebrahimi 12215*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12216*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12217*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12218*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12219*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12220*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - gnutls" \ 12221*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12222*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ 12223*62c56f98SSadaf Ebrahimi 0 \ 12224*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_HELLO" \ 12225*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_HELLO" \ 12226*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 12227*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 12228*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CERTIFICATE_VERIFY" \ 12229*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_FINISHED" \ 12230*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_FINISHED" \ 12231*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" \ 12232*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 12233*62c56f98SSadaf Ebrahimi 12234*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12235*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12236*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12237*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12238*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12239*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - gnutls with client authentication" \ 12240*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12241*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost -d 4 --x509certfile data_files/server5.crt --x509keyfile data_files/server5.key --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ 12242*62c56f98SSadaf Ebrahimi 0 \ 12243*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_HELLO" \ 12244*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_HELLO" \ 12245*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 12246*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CERTIFICATE_REQUEST" \ 12247*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 12248*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CERTIFICATE_VERIFY" \ 12249*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_FINISHED" \ 12250*62c56f98SSadaf Ebrahimi -s "=> write certificate request" \ 12251*62c56f98SSadaf Ebrahimi -s "=> parse client hello" \ 12252*62c56f98SSadaf Ebrahimi -s "<= parse client hello" 12253*62c56f98SSadaf Ebrahimi 12254*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12255*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12256*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12257*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12258*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - mbedtls" \ 12259*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12260*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12261*62c56f98SSadaf Ebrahimi 0 \ 12262*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_HELLO" \ 12263*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_HELLO" \ 12264*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 12265*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CERTIFICATE_REQUEST" \ 12266*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 12267*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CERTIFICATE_VERIFY" \ 12268*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_FINISHED" \ 12269*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_FINISHED" \ 12270*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" \ 12271*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 12272*62c56f98SSadaf Ebrahimi 12273*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12274*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12275*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12276*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12277*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - mbedtls with client authentication" \ 12278*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12279*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key" \ 12280*62c56f98SSadaf Ebrahimi 0 \ 12281*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_HELLO" \ 12282*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_HELLO" \ 12283*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 12284*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 12285*62c56f98SSadaf Ebrahimi -s "=> write certificate request" \ 12286*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_REQUEST" \ 12287*62c56f98SSadaf Ebrahimi -s "=> parse client hello" \ 12288*62c56f98SSadaf Ebrahimi -s "<= parse client hello" 12289*62c56f98SSadaf Ebrahimi 12290*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12291*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12292*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12293*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12294*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - mbedtls with client empty certificate" \ 12295*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12296*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=none key_file=none" \ 12297*62c56f98SSadaf Ebrahimi 1 \ 12298*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_HELLO" \ 12299*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_HELLO" \ 12300*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 12301*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 12302*62c56f98SSadaf Ebrahimi -s "=> write certificate request" \ 12303*62c56f98SSadaf Ebrahimi -s "SSL - No client certification received from the client, but required by the authentication mode" \ 12304*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_REQUEST" \ 12305*62c56f98SSadaf Ebrahimi -s "=> parse client hello" \ 12306*62c56f98SSadaf Ebrahimi -s "<= parse client hello" 12307*62c56f98SSadaf Ebrahimi 12308*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12309*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12310*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12311*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12312*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - mbedtls with optional client authentication" \ 12313*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=optional crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12314*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=none key_file=none" \ 12315*62c56f98SSadaf Ebrahimi 0 \ 12316*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_HELLO" \ 12317*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_HELLO" \ 12318*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 12319*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 12320*62c56f98SSadaf Ebrahimi -s "=> write certificate request" \ 12321*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_CERTIFICATE_REQUEST" \ 12322*62c56f98SSadaf Ebrahimi -s "=> parse client hello" \ 12323*62c56f98SSadaf Ebrahimi -s "<= parse client hello" 12324*62c56f98SSadaf Ebrahimi 12325*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12326*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12327*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12328*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12329*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_ECDH 12330*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: server: HRR check - mbedtls" \ 12331*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 groups=secp384r1" \ 12332*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 groups=secp256r1,secp384r1" \ 12333*62c56f98SSadaf Ebrahimi 0 \ 12334*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_CLIENT_HELLO" \ 12335*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_HELLO" \ 12336*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 12337*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_HELLO_RETRY_REQUEST" \ 12338*62c56f98SSadaf Ebrahimi -c "client state: MBEDTLS_SSL_ENCRYPTED_EXTENSIONS" \ 12339*62c56f98SSadaf Ebrahimi -s "selected_group: secp384r1" \ 12340*62c56f98SSadaf Ebrahimi -s "=> write hello retry request" \ 12341*62c56f98SSadaf Ebrahimi -s "<= write hello retry request" 12342*62c56f98SSadaf Ebrahimi 12343*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12344*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12345*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12346*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12347*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check, no server certificate available" \ 12348*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=none key_file=none" \ 12349*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12350*62c56f98SSadaf Ebrahimi 1 \ 12351*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ 12352*62c56f98SSadaf Ebrahimi -s "No certificate available." 12353*62c56f98SSadaf Ebrahimi 12354*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12355*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12356*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12357*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12358*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12359*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - openssl with sni" \ 12360*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0 \ 12361*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server5.crt,data_files/server5.key,data_files/test-ca_cat12.crt,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 12362*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -debug -servername localhost -CAfile data_files/test-ca_cat12.crt -cert data_files/server5.crt -key data_files/server5.key -tls1_3" \ 12363*62c56f98SSadaf Ebrahimi 0 \ 12364*62c56f98SSadaf Ebrahimi -s "parse ServerName extension" \ 12365*62c56f98SSadaf Ebrahimi -s "HTTP/1.0 200 OK" 12366*62c56f98SSadaf Ebrahimi 12367*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12368*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12369*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12370*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12371*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12372*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - gnutls with sni" \ 12373*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0 \ 12374*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server5.crt,data_files/server5.key,data_files/test-ca_cat12.crt,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 12375*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost -d 4 --sni-hostname=localhost --x509certfile data_files/server5.crt --x509keyfile data_files/server5.key --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS -V" \ 12376*62c56f98SSadaf Ebrahimi 0 \ 12377*62c56f98SSadaf Ebrahimi -s "parse ServerName extension" \ 12378*62c56f98SSadaf Ebrahimi -s "HTTP/1.0 200 OK" 12379*62c56f98SSadaf Ebrahimi 12380*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12381*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12382*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12383*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12384*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12385*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Server side check - mbedtls with sni" \ 12386*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0 \ 12387*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 12388*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 server_name=localhost crt_file=data_files/server5.crt key_file=data_files/server5.key" \ 12389*62c56f98SSadaf Ebrahimi 0 \ 12390*62c56f98SSadaf Ebrahimi -s "parse ServerName extension" \ 12391*62c56f98SSadaf Ebrahimi -s "HTTP/1.0 200 OK" 12392*62c56f98SSadaf Ebrahimi 12393*62c56f98SSadaf Ebrahimifor i in opt-testcases/*.sh 12394*62c56f98SSadaf Ebrahimido 12395*62c56f98SSadaf Ebrahimi TEST_SUITE_NAME=${i##*/} 12396*62c56f98SSadaf Ebrahimi TEST_SUITE_NAME=${TEST_SUITE_NAME%.*} 12397*62c56f98SSadaf Ebrahimi . "$i" 12398*62c56f98SSadaf Ebrahimidone 12399*62c56f98SSadaf Ebrahimiunset TEST_SUITE_NAME 12400*62c56f98SSadaf Ebrahimi 12401*62c56f98SSadaf Ebrahimi# Test 1.3 compatibility mode 12402*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12403*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12404*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12405*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12406*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12407*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->m both peers do not support middlebox compatibility" \ 12408*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 tickets=0" \ 12409*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12410*62c56f98SSadaf Ebrahimi 0 \ 12411*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12412*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12413*62c56f98SSadaf Ebrahimi -S "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ 12414*62c56f98SSadaf Ebrahimi -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12415*62c56f98SSadaf Ebrahimi 12416*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12417*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12418*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12419*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12420*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12421*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->m both with middlebox compat support" \ 12422*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 tickets=0" \ 12423*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12424*62c56f98SSadaf Ebrahimi 0 \ 12425*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12426*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12427*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ 12428*62c56f98SSadaf Ebrahimi -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12429*62c56f98SSadaf Ebrahimi 12430*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12431*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12432*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12433*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12434*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12435*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->O both peers do not support middlebox compatibility" \ 12436*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -no_middlebox -num_tickets 0 -no_resume_ephemeral -no_cache" \ 12437*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12438*62c56f98SSadaf Ebrahimi 0 \ 12439*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12440*62c56f98SSadaf Ebrahimi -C "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" \ 12441*62c56f98SSadaf Ebrahimi -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12442*62c56f98SSadaf Ebrahimi 12443*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12444*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12445*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12446*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12447*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12448*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->O server with middlebox compat support, not client" \ 12449*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ 12450*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12451*62c56f98SSadaf Ebrahimi 1 \ 12452*62c56f98SSadaf Ebrahimi -c "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" 12453*62c56f98SSadaf Ebrahimi 12454*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12455*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12456*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12457*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12458*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12459*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->O both with middlebox compat support" \ 12460*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ 12461*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12462*62c56f98SSadaf Ebrahimi 0 \ 12463*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12464*62c56f98SSadaf Ebrahimi -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12465*62c56f98SSadaf Ebrahimi 12466*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12467*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12468*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 12469*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12470*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12471*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12472*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12473*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->G both peers do not support middlebox compatibility" \ 12474*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE --disable-client-cert" \ 12475*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12476*62c56f98SSadaf Ebrahimi 0 \ 12477*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12478*62c56f98SSadaf Ebrahimi -C "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" \ 12479*62c56f98SSadaf Ebrahimi -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12480*62c56f98SSadaf Ebrahimi 12481*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12482*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12483*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12484*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12485*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12486*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12487*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->G server with middlebox compat support, not client" \ 12488*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ 12489*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12490*62c56f98SSadaf Ebrahimi 1 \ 12491*62c56f98SSadaf Ebrahimi -c "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" 12492*62c56f98SSadaf Ebrahimi 12493*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12494*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12495*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12496*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12497*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12498*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12499*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->G both with middlebox compat support" \ 12500*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ 12501*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4" \ 12502*62c56f98SSadaf Ebrahimi 0 \ 12503*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12504*62c56f98SSadaf Ebrahimi -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12505*62c56f98SSadaf Ebrahimi 12506*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12507*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12508*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12509*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12510*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12511*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 O->m both peers do not support middlebox compatibility" \ 12512*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12513*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -debug -no_middlebox" \ 12514*62c56f98SSadaf Ebrahimi 0 \ 12515*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12516*62c56f98SSadaf Ebrahimi -S "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ 12517*62c56f98SSadaf Ebrahimi -C "14 03 03 00 01" 12518*62c56f98SSadaf Ebrahimi 12519*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12520*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12521*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12522*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12523*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12524*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 O->m server with middlebox compat support, not client" \ 12525*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12526*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -debug -no_middlebox" \ 12527*62c56f98SSadaf Ebrahimi 0 \ 12528*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12529*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" 12530*62c56f98SSadaf Ebrahimi 12531*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12532*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12533*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12534*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12535*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12536*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 O->m both with middlebox compat support" \ 12537*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12538*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -debug" \ 12539*62c56f98SSadaf Ebrahimi 0 \ 12540*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12541*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ 12542*62c56f98SSadaf Ebrahimi -c "14 03 03 00 01" 12543*62c56f98SSadaf Ebrahimi 12544*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12545*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12546*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 12547*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12548*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12549*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12550*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12551*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 G->m both peers do not support middlebox compatibility" \ 12552*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12553*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ 12554*62c56f98SSadaf Ebrahimi 0 \ 12555*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12556*62c56f98SSadaf Ebrahimi -S "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ 12557*62c56f98SSadaf Ebrahimi -C "SSL 3.3 ChangeCipherSpec packet received" 12558*62c56f98SSadaf Ebrahimi 12559*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12560*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12561*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 12562*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12563*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12564*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12565*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12566*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 G->m server with middlebox compat support, not client" \ 12567*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12568*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ 12569*62c56f98SSadaf Ebrahimi 0 \ 12570*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12571*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ 12572*62c56f98SSadaf Ebrahimi -c "SSL 3.3 ChangeCipherSpec packet received" \ 12573*62c56f98SSadaf Ebrahimi -c "discarding change cipher spec in TLS1.3" 12574*62c56f98SSadaf Ebrahimi 12575*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12576*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12577*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 12578*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12579*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12580*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12581*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12582*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 G->m both with middlebox compat support" \ 12583*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=0" \ 12584*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ 12585*62c56f98SSadaf Ebrahimi 0 \ 12586*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12587*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ 12588*62c56f98SSadaf Ebrahimi -c "SSL 3.3 ChangeCipherSpec packet received" 12589*62c56f98SSadaf Ebrahimi 12590*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12591*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12592*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12593*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12594*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12595*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->m HRR both peers do not support middlebox compatibility" \ 12596*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 groups=secp384r1 tickets=0" \ 12597*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 groups=secp256r1,secp384r1" \ 12598*62c56f98SSadaf Ebrahimi 0 \ 12599*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12600*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12601*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_HELLO_RETRY_REQUEST" \ 12602*62c56f98SSadaf Ebrahimi -S "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ 12603*62c56f98SSadaf Ebrahimi -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12604*62c56f98SSadaf Ebrahimi 12605*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12606*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12607*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12608*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_ECDH 12609*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12610*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12611*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->m HRR both with middlebox compat support" \ 12612*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 groups=secp384r1 tickets=0" \ 12613*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 groups=secp256r1,secp384r1" \ 12614*62c56f98SSadaf Ebrahimi 0 \ 12615*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12616*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12617*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_HELLO_RETRY_REQUEST" \ 12618*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ 12619*62c56f98SSadaf Ebrahimi -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12620*62c56f98SSadaf Ebrahimi 12621*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12622*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12623*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12624*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12625*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12626*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->O HRR both peers do not support middlebox compatibility" \ 12627*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -no_middlebox -num_tickets 0 -no_cache" \ 12628*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 groups=secp256r1,secp384r1" \ 12629*62c56f98SSadaf Ebrahimi 0 \ 12630*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12631*62c56f98SSadaf Ebrahimi -c "received HelloRetryRequest message" \ 12632*62c56f98SSadaf Ebrahimi -C "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" \ 12633*62c56f98SSadaf Ebrahimi -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12634*62c56f98SSadaf Ebrahimi 12635*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12636*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12637*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12638*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12639*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12640*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->O HRR server with middlebox compat support, not client" \ 12641*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -num_tickets 0 -no_cache" \ 12642*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 groups=secp256r1,secp384r1" \ 12643*62c56f98SSadaf Ebrahimi 1 \ 12644*62c56f98SSadaf Ebrahimi -c "received HelloRetryRequest message" \ 12645*62c56f98SSadaf Ebrahimi -c "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" 12646*62c56f98SSadaf Ebrahimi 12647*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12648*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12649*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12650*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12651*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12652*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->O HRR both with middlebox compat support" \ 12653*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -num_tickets 0 -no_resume_ephemeral -no_cache" \ 12654*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 groups=secp256r1,secp384r1" \ 12655*62c56f98SSadaf Ebrahimi 0 \ 12656*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12657*62c56f98SSadaf Ebrahimi -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12658*62c56f98SSadaf Ebrahimi 12659*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12660*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12661*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 12662*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12663*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12664*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12665*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12666*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->G HRR both peers do not support middlebox compatibility" \ 12667*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE --disable-client-cert" \ 12668*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 groups=secp256r1,secp384r1" \ 12669*62c56f98SSadaf Ebrahimi 0 \ 12670*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12671*62c56f98SSadaf Ebrahimi -c "received HelloRetryRequest message" \ 12672*62c56f98SSadaf Ebrahimi -C "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" \ 12673*62c56f98SSadaf Ebrahimi -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12674*62c56f98SSadaf Ebrahimi 12675*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12676*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12677*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12678*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12679*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12680*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12681*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->G HRR server with middlebox compat support, not client" \ 12682*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ 12683*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 groups=secp256r1,secp384r1" \ 12684*62c56f98SSadaf Ebrahimi 1 \ 12685*62c56f98SSadaf Ebrahimi -c "received HelloRetryRequest message" \ 12686*62c56f98SSadaf Ebrahimi -c "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" 12687*62c56f98SSadaf Ebrahimi 12688*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12689*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12690*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12691*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12692*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_ECDH 12693*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12694*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12695*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->G HRR both with middlebox compat support" \ 12696*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ 12697*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 groups=secp256r1,secp384r1" \ 12698*62c56f98SSadaf Ebrahimi 0 \ 12699*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12700*62c56f98SSadaf Ebrahimi -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" 12701*62c56f98SSadaf Ebrahimi 12702*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12703*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12704*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12705*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12706*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12707*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 O->m HRR both peers do not support middlebox compatibility" \ 12708*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key groups=secp384r1 tickets=0" \ 12709*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -debug -groups P-256:P-384 -no_middlebox" \ 12710*62c56f98SSadaf Ebrahimi 0 \ 12711*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12712*62c56f98SSadaf Ebrahimi -S "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ 12713*62c56f98SSadaf Ebrahimi -C "14 03 03 00 01" 12714*62c56f98SSadaf Ebrahimi 12715*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12716*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12717*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12718*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12719*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12720*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 O->m HRR server with middlebox compat support, not client" \ 12721*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key groups=secp384r1 tickets=0" \ 12722*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -debug -groups P-256:P-384 -no_middlebox" \ 12723*62c56f98SSadaf Ebrahimi 0 \ 12724*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12725*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ 12726*62c56f98SSadaf Ebrahimi 12727*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12728*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12729*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12730*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12731*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12732*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 O->m HRR both with middlebox compat support" \ 12733*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key groups=secp384r1 tickets=0" \ 12734*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -debug -groups P-256:P-384" \ 12735*62c56f98SSadaf Ebrahimi 0 \ 12736*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12737*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ 12738*62c56f98SSadaf Ebrahimi -c "14 03 03 00 01" 12739*62c56f98SSadaf Ebrahimi 12740*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12741*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12742*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 12743*62c56f98SSadaf Ebrahimirequires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 12744*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12745*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12746*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12747*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 G->m HRR both peers do not support middlebox compatibility" \ 12748*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key groups=secp384r1 tickets=0" \ 12749*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ 12750*62c56f98SSadaf Ebrahimi 0 \ 12751*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12752*62c56f98SSadaf Ebrahimi -S "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ 12753*62c56f98SSadaf Ebrahimi -C "SSL 3.3 ChangeCipherSpec packet received" 12754*62c56f98SSadaf Ebrahimi 12755*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12756*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12757*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 12758*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12759*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12760*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_ECDH 12761*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12762*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12763*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 G->m HRR server with middlebox compat support, not client" \ 12764*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key groups=secp384r1 tickets=0" \ 12765*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ 12766*62c56f98SSadaf Ebrahimi 0 \ 12767*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12768*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ 12769*62c56f98SSadaf Ebrahimi -c "SSL 3.3 ChangeCipherSpec packet received" \ 12770*62c56f98SSadaf Ebrahimi -c "discarding change cipher spec in TLS1.3" 12771*62c56f98SSadaf Ebrahimi 12772*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12773*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 12774*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 12775*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12776*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12777*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_ECDH 12778*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12779*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12780*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 G->m HRR both with middlebox compat support" \ 12781*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key groups=secp384r1 tickets=0" \ 12782*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ 12783*62c56f98SSadaf Ebrahimi 0 \ 12784*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 12785*62c56f98SSadaf Ebrahimi -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ 12786*62c56f98SSadaf Ebrahimi -c "SSL 3.3 ChangeCipherSpec packet received" 12787*62c56f98SSadaf Ebrahimi 12788*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12789*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12790*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12791*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12792*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12793*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check signature algorithm order, m->O" \ 12794*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key 12795*62c56f98SSadaf Ebrahimi -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache 12796*62c56f98SSadaf Ebrahimi -Verify 10 -sigalgs rsa_pkcs1_sha512:rsa_pss_rsae_sha512:rsa_pss_rsae_sha384:ecdsa_secp256r1_sha256" \ 12797*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key \ 12798*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 12799*62c56f98SSadaf Ebrahimi 0 \ 12800*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12801*62c56f98SSadaf Ebrahimi -c "CertificateVerify signature with rsa_pss_rsae_sha512" \ 12802*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" 12803*62c56f98SSadaf Ebrahimi 12804*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12805*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12806*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12807*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12808*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12809*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check signature algorithm order, m->G" \ 12810*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key 12811*62c56f98SSadaf Ebrahimi -d 4 12812*62c56f98SSadaf Ebrahimi --priority=NORMAL:-VERS-ALL:-SIGN-ALL:+SIGN-RSA-SHA512:+SIGN-RSA-PSS-RSAE-SHA512:+SIGN-RSA-PSS-RSAE-SHA384:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS " \ 12813*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key \ 12814*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 12815*62c56f98SSadaf Ebrahimi 0 \ 12816*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12817*62c56f98SSadaf Ebrahimi -c "CertificateVerify signature with rsa_pss_rsae_sha512" \ 12818*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" 12819*62c56f98SSadaf Ebrahimi 12820*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12821*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12822*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12823*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12824*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12825*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check signature algorithm order, m->m" \ 12826*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required 12827*62c56f98SSadaf Ebrahimi crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key 12828*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key 12829*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256 " \ 12830*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key \ 12831*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 12832*62c56f98SSadaf Ebrahimi 0 \ 12833*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 12834*62c56f98SSadaf Ebrahimi -c "CertificateVerify signature with rsa_pss_rsae_sha512" \ 12835*62c56f98SSadaf Ebrahimi -s "CertificateVerify signature with rsa_pss_rsae_sha512" \ 12836*62c56f98SSadaf Ebrahimi -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" \ 12837*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" 12838*62c56f98SSadaf Ebrahimi 12839*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12840*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12841*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12842*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12843*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12844*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check signature algorithm order, O->m" \ 12845*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required 12846*62c56f98SSadaf Ebrahimi crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key 12847*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key 12848*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256 " \ 12849*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -msg -CAfile data_files/test-ca_cat12.crt \ 12850*62c56f98SSadaf Ebrahimi -cert data_files/server2-sha256.crt -key data_files/server2.key \ 12851*62c56f98SSadaf Ebrahimi -sigalgs rsa_pkcs1_sha512:rsa_pss_rsae_sha512:rsa_pss_rsae_sha384:ecdsa_secp256r1_sha256" \ 12852*62c56f98SSadaf Ebrahimi 0 \ 12853*62c56f98SSadaf Ebrahimi -c "TLSv1.3" \ 12854*62c56f98SSadaf Ebrahimi -s "CertificateVerify signature with rsa_pss_rsae_sha512" \ 12855*62c56f98SSadaf Ebrahimi -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" 12856*62c56f98SSadaf Ebrahimi 12857*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12858*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12859*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12860*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12861*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12862*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check signature algorithm order, G->m" \ 12863*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required 12864*62c56f98SSadaf Ebrahimi crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key 12865*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key 12866*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256 " \ 12867*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI_NO_CERT localhost -d 4 --x509cafile data_files/test-ca_cat12.crt \ 12868*62c56f98SSadaf Ebrahimi --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key \ 12869*62c56f98SSadaf Ebrahimi --priority=NORMAL:-SIGN-ALL:+SIGN-RSA-SHA512:+SIGN-RSA-PSS-RSAE-SHA512:+SIGN-RSA-PSS-RSAE-SHA384" \ 12870*62c56f98SSadaf Ebrahimi 0 \ 12871*62c56f98SSadaf Ebrahimi -c "Negotiated version: 3.4" \ 12872*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" \ 12873*62c56f98SSadaf Ebrahimi -s "CertificateVerify signature with rsa_pss_rsae_sha512" \ 12874*62c56f98SSadaf Ebrahimi -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" 12875*62c56f98SSadaf Ebrahimi 12876*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12877*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12878*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12879*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12880*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12881*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check server no suitable signature algorithm, G->m" \ 12882*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required 12883*62c56f98SSadaf Ebrahimi crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key 12884*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key 12885*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,ecdsa_secp256r1_sha256 " \ 12886*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI_NO_CERT localhost -d 4 --x509cafile data_files/test-ca_cat12.crt \ 12887*62c56f98SSadaf Ebrahimi --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key \ 12888*62c56f98SSadaf Ebrahimi --priority=NORMAL:-SIGN-ALL:+SIGN-RSA-SHA512:+SIGN-RSA-PSS-RSAE-SHA512:+SIGN-ECDSA-SECP521R1-SHA512" \ 12889*62c56f98SSadaf Ebrahimi 1 \ 12890*62c56f98SSadaf Ebrahimi -S "ssl_tls13_pick_key_cert:check signature algorithm" 12891*62c56f98SSadaf Ebrahimi 12892*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12893*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12894*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12895*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12896*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12897*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check server no suitable signature algorithm, O->m" \ 12898*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required 12899*62c56f98SSadaf Ebrahimi crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key 12900*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key 12901*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,ecdsa_secp256r1_sha256" \ 12902*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -msg -CAfile data_files/test-ca_cat12.crt \ 12903*62c56f98SSadaf Ebrahimi -cert data_files/server2-sha256.crt -key data_files/server2.key \ 12904*62c56f98SSadaf Ebrahimi -sigalgs rsa_pkcs1_sha512:rsa_pss_rsae_sha512:ecdsa_secp521r1_sha512" \ 12905*62c56f98SSadaf Ebrahimi 1 \ 12906*62c56f98SSadaf Ebrahimi -S "ssl_tls13_pick_key_cert:check signature algorithm" 12907*62c56f98SSadaf Ebrahimi 12908*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12909*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12910*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12911*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12912*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12913*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check server no suitable signature algorithm, m->m" \ 12914*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required 12915*62c56f98SSadaf Ebrahimi crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key 12916*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key 12917*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,ecdsa_secp256r1_sha256 " \ 12918*62c56f98SSadaf Ebrahimi "$P_CLI allow_sha1=0 debug_level=4 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key \ 12919*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,ecdsa_secp521r1_sha512" \ 12920*62c56f98SSadaf Ebrahimi 1 \ 12921*62c56f98SSadaf Ebrahimi -S "ssl_tls13_pick_key_cert:check signature algorithm" 12922*62c56f98SSadaf Ebrahimi 12923*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12924*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12925*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12926*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12927*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12928*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check server no suitable certificate, G->m" \ 12929*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 12930*62c56f98SSadaf Ebrahimi crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key 12931*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256 " \ 12932*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI_NO_CERT localhost -d 4 --x509cafile data_files/test-ca_cat12.crt \ 12933*62c56f98SSadaf Ebrahimi --priority=NORMAL:-SIGN-ALL:+SIGN-ECDSA-SECP521R1-SHA512:+SIGN-ECDSA-SECP256R1-SHA256" \ 12934*62c56f98SSadaf Ebrahimi 1 \ 12935*62c56f98SSadaf Ebrahimi -s "ssl_tls13_pick_key_cert:no suitable certificate found" 12936*62c56f98SSadaf Ebrahimi 12937*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12938*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12939*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12940*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12941*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12942*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check server no suitable certificate, O->m" \ 12943*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 12944*62c56f98SSadaf Ebrahimi crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key 12945*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256 " \ 12946*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI_NO_CERT -msg -CAfile data_files/test-ca_cat12.crt \ 12947*62c56f98SSadaf Ebrahimi -sigalgs ecdsa_secp521r1_sha512:ecdsa_secp256r1_sha256" \ 12948*62c56f98SSadaf Ebrahimi 1 \ 12949*62c56f98SSadaf Ebrahimi -s "ssl_tls13_pick_key_cert:no suitable certificate found" 12950*62c56f98SSadaf Ebrahimi 12951*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12952*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12953*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12954*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12955*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12956*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check server no suitable certificate, m->m" \ 12957*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 12958*62c56f98SSadaf Ebrahimi crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key 12959*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256 " \ 12960*62c56f98SSadaf Ebrahimi "$P_CLI allow_sha1=0 debug_level=4 \ 12961*62c56f98SSadaf Ebrahimi sig_algs=ecdsa_secp521r1_sha512,ecdsa_secp256r1_sha256" \ 12962*62c56f98SSadaf Ebrahimi 1 \ 12963*62c56f98SSadaf Ebrahimi -s "ssl_tls13_pick_key_cert:no suitable certificate found" 12964*62c56f98SSadaf Ebrahimi 12965*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 12966*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12967*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12968*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12969*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12970*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check client no signature algorithm, m->O" \ 12971*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key 12972*62c56f98SSadaf Ebrahimi -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache 12973*62c56f98SSadaf Ebrahimi -Verify 10 -sigalgs rsa_pkcs1_sha512:rsa_pss_rsae_sha512:rsa_pss_rsae_sha384:ecdsa_secp521r1_sha512" \ 12974*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key \ 12975*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 12976*62c56f98SSadaf Ebrahimi 1 \ 12977*62c56f98SSadaf Ebrahimi -c "no suitable signature algorithm" 12978*62c56f98SSadaf Ebrahimi 12979*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 12980*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12981*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12982*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12983*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12984*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check client no signature algorithm, m->G" \ 12985*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key 12986*62c56f98SSadaf Ebrahimi -d 4 12987*62c56f98SSadaf Ebrahimi --priority=NORMAL:-VERS-ALL:-SIGN-ALL:+SIGN-RSA-SHA512:+SIGN-RSA-PSS-RSAE-SHA512:+SIGN-RSA-PSS-RSAE-SHA384:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS " \ 12988*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key \ 12989*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 12990*62c56f98SSadaf Ebrahimi 1 \ 12991*62c56f98SSadaf Ebrahimi -c "no suitable signature algorithm" 12992*62c56f98SSadaf Ebrahimi 12993*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 12994*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 12995*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 12996*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 12997*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 12998*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: Check client no signature algorithm, m->m" \ 12999*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 auth_mode=required 13000*62c56f98SSadaf Ebrahimi crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key 13001*62c56f98SSadaf Ebrahimi crt_file=data_files/server5.crt key_file=data_files/server5.key 13002*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp521r1_sha512" \ 13003*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key \ 13004*62c56f98SSadaf Ebrahimi sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 13005*62c56f98SSadaf Ebrahimi 1 \ 13006*62c56f98SSadaf Ebrahimi -c "no suitable signature algorithm" 13007*62c56f98SSadaf Ebrahimi 13008*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 13009*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13010*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13011*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 13012*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ 13013*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 13014*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: NewSessionTicket: Basic check, m->O" \ 13015*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 4" \ 13016*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ 13017*62c56f98SSadaf Ebrahimi 0 \ 13018*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 13019*62c56f98SSadaf Ebrahimi -c "got new session ticket." \ 13020*62c56f98SSadaf Ebrahimi -c "Saving session for reuse... ok" \ 13021*62c56f98SSadaf Ebrahimi -c "Reconnecting with saved session" \ 13022*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 ok" 13023*62c56f98SSadaf Ebrahimi 13024*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13025*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13026*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13027*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 13028*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ 13029*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 13030*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ 13031*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \ 13032*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ 13033*62c56f98SSadaf Ebrahimi 0 \ 13034*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 13035*62c56f98SSadaf Ebrahimi -c "got new session ticket." \ 13036*62c56f98SSadaf Ebrahimi -c "Saving session for reuse... ok" \ 13037*62c56f98SSadaf Ebrahimi -c "Reconnecting with saved session" \ 13038*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 13039*62c56f98SSadaf Ebrahimi -s "This is a resumed session" 13040*62c56f98SSadaf Ebrahimi 13041*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 13042*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SESSION_TICKETS 13043*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13044*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13045*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 13046*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ 13047*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 13048*62c56f98SSadaf Ebrahimi# https://github.com/openssl/openssl/issues/10714 13049*62c56f98SSadaf Ebrahimi# Until now, OpenSSL client does not support reconnect. 13050*62c56f98SSadaf Ebrahimiskip_next_test 13051*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: NewSessionTicket: Basic check, O->m" \ 13052*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=4" \ 13053*62c56f98SSadaf Ebrahimi "$O_NEXT_CLI -msg -debug -tls1_3 -reconnect" \ 13054*62c56f98SSadaf Ebrahimi 0 \ 13055*62c56f98SSadaf Ebrahimi -s "=> write NewSessionTicket msg" \ 13056*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ 13057*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" 13058*62c56f98SSadaf Ebrahimi 13059*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13060*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SESSION_TICKETS 13061*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13062*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13063*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 13064*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ 13065*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 13066*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ 13067*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=4" \ 13068*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \ 13069*62c56f98SSadaf Ebrahimi 0 \ 13070*62c56f98SSadaf Ebrahimi -c "Connecting again- trying to resume previous session" \ 13071*62c56f98SSadaf Ebrahimi -c "NEW SESSION TICKET (4) was received" \ 13072*62c56f98SSadaf Ebrahimi -s "=> write NewSessionTicket msg" \ 13073*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ 13074*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" \ 13075*62c56f98SSadaf Ebrahimi -s "key exchange mode: ephemeral" \ 13076*62c56f98SSadaf Ebrahimi -s "key exchange mode: psk_ephemeral" \ 13077*62c56f98SSadaf Ebrahimi -s "found pre_shared_key extension" 13078*62c56f98SSadaf Ebrahimi 13079*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13080*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SESSION_TICKETS 13081*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13082*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13083*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 13084*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ 13085*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 13086*62c56f98SSadaf Ebrahimi# Test the session resumption when the cipher suite for the original session is 13087*62c56f98SSadaf Ebrahimi# TLS1-3-AES-256-GCM-SHA384. In that case, the PSK is 384 bits long and not 13088*62c56f98SSadaf Ebrahimi# 256 bits long as with all the other TLS 1.3 cipher suites. 13089*62c56f98SSadaf Ebrahimirequires_ciphersuite_enabled TLS1-3-AES-256-GCM-SHA384 13090*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: NewSessionTicket: Basic check with AES-256-GCM only, G->m" \ 13091*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ 13092*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM -V -r" \ 13093*62c56f98SSadaf Ebrahimi 0 \ 13094*62c56f98SSadaf Ebrahimi -c "Connecting again- trying to resume previous session" \ 13095*62c56f98SSadaf Ebrahimi -c "NEW SESSION TICKET (4) was received" \ 13096*62c56f98SSadaf Ebrahimi -s "Ciphersuite is TLS1-3-AES-256-GCM-SHA384" \ 13097*62c56f98SSadaf Ebrahimi -s "=> write NewSessionTicket msg" \ 13098*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ 13099*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" \ 13100*62c56f98SSadaf Ebrahimi -s "key exchange mode: ephemeral" \ 13101*62c56f98SSadaf Ebrahimi -s "key exchange mode: psk_ephemeral" \ 13102*62c56f98SSadaf Ebrahimi -s "found pre_shared_key extension" 13103*62c56f98SSadaf Ebrahimi 13104*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SESSION_TICKETS 13105*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13106*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13107*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13108*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 13109*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ 13110*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 13111*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ 13112*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=4" \ 13113*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 13114*62c56f98SSadaf Ebrahimi 0 \ 13115*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 13116*62c56f98SSadaf Ebrahimi -c "got new session ticket ( 3 )" \ 13117*62c56f98SSadaf Ebrahimi -c "Saving session for reuse... ok" \ 13118*62c56f98SSadaf Ebrahimi -c "Reconnecting with saved session" \ 13119*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 13120*62c56f98SSadaf Ebrahimi -s "=> write NewSessionTicket msg" \ 13121*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ 13122*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" \ 13123*62c56f98SSadaf Ebrahimi -s "key exchange mode: ephemeral" \ 13124*62c56f98SSadaf Ebrahimi -s "key exchange mode: psk_ephemeral" \ 13125*62c56f98SSadaf Ebrahimi -s "found pre_shared_key extension" 13126*62c56f98SSadaf Ebrahimi 13127*62c56f98SSadaf Ebrahimirequires_openssl_tls1_3_with_compatible_ephemeral 13128*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 13129*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13130*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13131*62c56f98SSadaf Ebrahimirun_test "TLS 1.2: Check rsa_pss_rsae compatibility issue, m->O" \ 13132*62c56f98SSadaf Ebrahimi "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key 13133*62c56f98SSadaf Ebrahimi -msg -tls1_2 13134*62c56f98SSadaf Ebrahimi -Verify 10 " \ 13135*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key 13136*62c56f98SSadaf Ebrahimi sig_algs=rsa_pss_rsae_sha512,rsa_pkcs1_sha512 13137*62c56f98SSadaf Ebrahimi min_version=tls12 max_version=tls13 " \ 13138*62c56f98SSadaf Ebrahimi 0 \ 13139*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.2" \ 13140*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" 13141*62c56f98SSadaf Ebrahimi 13142*62c56f98SSadaf Ebrahimi 13143*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13144*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 13145*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13146*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13147*62c56f98SSadaf Ebrahimirun_test "TLS 1.2: Check rsa_pss_rsae compatibility issue, m->G" \ 13148*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key 13149*62c56f98SSadaf Ebrahimi -d 4 13150*62c56f98SSadaf Ebrahimi --priority=NORMAL:-VERS-ALL:+VERS-TLS1.2" \ 13151*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key 13152*62c56f98SSadaf Ebrahimi sig_algs=rsa_pss_rsae_sha512,rsa_pkcs1_sha512 13153*62c56f98SSadaf Ebrahimi min_version=tls12 max_version=tls13 " \ 13154*62c56f98SSadaf Ebrahimi 0 \ 13155*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.2" \ 13156*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 [Oo][Kk]" 13157*62c56f98SSadaf Ebrahimi 13158*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SESSION_TICKETS 13159*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13160*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13161*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13162*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 13163*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ 13164*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 13165*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ 13166*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=4 \ 13167*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 13168*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 server_name=localhost reco_mode=1 reconnect=1" \ 13169*62c56f98SSadaf Ebrahimi 0 \ 13170*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 13171*62c56f98SSadaf Ebrahimi -c "got new session ticket." \ 13172*62c56f98SSadaf Ebrahimi -c "Saving session for reuse... ok" \ 13173*62c56f98SSadaf Ebrahimi -c "Reconnecting with saved session" \ 13174*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 13175*62c56f98SSadaf Ebrahimi -s "=> write NewSessionTicket msg" \ 13176*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ 13177*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" \ 13178*62c56f98SSadaf Ebrahimi -s "key exchange mode: ephemeral" \ 13179*62c56f98SSadaf Ebrahimi -s "key exchange mode: psk_ephemeral" \ 13180*62c56f98SSadaf Ebrahimi -s "found pre_shared_key extension" 13181*62c56f98SSadaf Ebrahimi 13182*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SESSION_TICKETS 13183*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13184*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13185*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13186*62c56f98SSadaf Ebrahimirequires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ 13187*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ 13188*62c56f98SSadaf Ebrahimi MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED 13189*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ 13190*62c56f98SSadaf Ebrahimi "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key tickets=4 \ 13191*62c56f98SSadaf Ebrahimi sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ 13192*62c56f98SSadaf Ebrahimi "$P_CLI debug_level=4 server_name=localhost reco_server_name=remote reco_mode=1 reconnect=1" \ 13193*62c56f98SSadaf Ebrahimi 1 \ 13194*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 13195*62c56f98SSadaf Ebrahimi -c "got new session ticket." \ 13196*62c56f98SSadaf Ebrahimi -c "Saving session for reuse... ok" \ 13197*62c56f98SSadaf Ebrahimi -c "Reconnecting with saved session" \ 13198*62c56f98SSadaf Ebrahimi -c "Hostname mismatch the session ticket, disable session resumption." \ 13199*62c56f98SSadaf Ebrahimi -s "=> write NewSessionTicket msg" \ 13200*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ 13201*62c56f98SSadaf Ebrahimi -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" 13202*62c56f98SSadaf Ebrahimi 13203*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13204*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13205*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 13206*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 13207*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT 13208*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_FFDH 13209*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13210*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 13211*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 13212*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 G->m: AES_128_GCM_SHA256,ffdhe3072,rsa_pss_rsae_sha256" \ 13213*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=rsa_pss_rsae_sha256 groups=ffdhe3072 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ 13214*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI_NO_CERT --debug=4 --single-key-share --x509cafile data_files/test-ca_cat12.crt --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-RSA-PSS-RSAE-SHA256:+GROUP-FFDHE3072:+VERS-TLS1.3:%NO_TICKETS" \ 13215*62c56f98SSadaf Ebrahimi 0 \ 13216*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 13217*62c56f98SSadaf Ebrahimi -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ 13218*62c56f98SSadaf Ebrahimi -s "received signature algorithm: 0x804" \ 13219*62c56f98SSadaf Ebrahimi -s "got named group: ffdhe3072(0101)" \ 13220*62c56f98SSadaf Ebrahimi -s "Certificate verification was skipped" \ 13221*62c56f98SSadaf Ebrahimi -C "received HelloRetryRequest message" 13222*62c56f98SSadaf Ebrahimi 13223*62c56f98SSadaf Ebrahimi 13224*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13225*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 13226*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 13227*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13228*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13229*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 13230*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 13231*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT 13232*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_FFDH 13233*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->G: AES_128_GCM_SHA256,ffdhe3072,rsa_pss_rsae_sha256" \ 13234*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-RSA-PSS-RSAE-SHA256:+GROUP-FFDHE3072:+VERS-TLS1.3:%NO_TICKETS" \ 13235*62c56f98SSadaf Ebrahimi "$P_CLI ca_file=data_files/test-ca_cat12.crt debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=rsa_pss_rsae_sha256 groups=ffdhe3072" \ 13236*62c56f98SSadaf Ebrahimi 0 \ 13237*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 13238*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 13239*62c56f98SSadaf Ebrahimi -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ 13240*62c56f98SSadaf Ebrahimi -c "Certificate Verify: Signature algorithm ( 0804 )" \ 13241*62c56f98SSadaf Ebrahimi -c "NamedGroup: ffdhe3072 ( 101 )" \ 13242*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 13243*62c56f98SSadaf Ebrahimi -C "received HelloRetryRequest message" 13244*62c56f98SSadaf Ebrahimi 13245*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13246*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13247*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 13248*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 13249*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT 13250*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_FFDH 13251*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13252*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 13253*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 13254*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 G->m: AES_128_GCM_SHA256,ffdhe4096,rsa_pss_rsae_sha256" \ 13255*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=rsa_pss_rsae_sha256 groups=ffdhe4096 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ 13256*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI_NO_CERT --debug=4 --single-key-share --x509cafile data_files/test-ca_cat12.crt --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-RSA-PSS-RSAE-SHA256:+GROUP-FFDHE4096:+VERS-TLS1.3:%NO_TICKETS" \ 13257*62c56f98SSadaf Ebrahimi 0 \ 13258*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 13259*62c56f98SSadaf Ebrahimi -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ 13260*62c56f98SSadaf Ebrahimi -s "received signature algorithm: 0x804" \ 13261*62c56f98SSadaf Ebrahimi -s "got named group: ffdhe4096(0102)" \ 13262*62c56f98SSadaf Ebrahimi -s "Certificate verification was skipped" \ 13263*62c56f98SSadaf Ebrahimi -C "received HelloRetryRequest message" 13264*62c56f98SSadaf Ebrahimi 13265*62c56f98SSadaf Ebrahimi 13266*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13267*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 13268*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 13269*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13270*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13271*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 13272*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 13273*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT 13274*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_FFDH 13275*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->G: AES_128_GCM_SHA256,ffdhe4096,rsa_pss_rsae_sha256" \ 13276*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-RSA-PSS-RSAE-SHA256:+GROUP-FFDHE4096:+VERS-TLS1.3:%NO_TICKETS" \ 13277*62c56f98SSadaf Ebrahimi "$P_CLI ca_file=data_files/test-ca_cat12.crt debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=rsa_pss_rsae_sha256 groups=ffdhe4096" \ 13278*62c56f98SSadaf Ebrahimi 0 \ 13279*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 13280*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 13281*62c56f98SSadaf Ebrahimi -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ 13282*62c56f98SSadaf Ebrahimi -c "Certificate Verify: Signature algorithm ( 0804 )" \ 13283*62c56f98SSadaf Ebrahimi -c "NamedGroup: ffdhe4096 ( 102 )" \ 13284*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 13285*62c56f98SSadaf Ebrahimi -C "received HelloRetryRequest message" 13286*62c56f98SSadaf Ebrahimi 13287*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13288*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13289*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 13290*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 13291*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT 13292*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_FFDH 13293*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13294*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 13295*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 13296*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 G->m: AES_128_GCM_SHA256,ffdhe6144,rsa_pss_rsae_sha256" \ 13297*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=rsa_pss_rsae_sha256 groups=ffdhe6144 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ 13298*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI_NO_CERT --debug=4 --single-key-share --x509cafile data_files/test-ca_cat12.crt --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-RSA-PSS-RSAE-SHA256:+GROUP-FFDHE6144:+VERS-TLS1.3:%NO_TICKETS" \ 13299*62c56f98SSadaf Ebrahimi 0 \ 13300*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 13301*62c56f98SSadaf Ebrahimi -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ 13302*62c56f98SSadaf Ebrahimi -s "received signature algorithm: 0x804" \ 13303*62c56f98SSadaf Ebrahimi -s "got named group: ffdhe6144(0103)" \ 13304*62c56f98SSadaf Ebrahimi -s "Certificate verification was skipped" \ 13305*62c56f98SSadaf Ebrahimi -C "received HelloRetryRequest message" 13306*62c56f98SSadaf Ebrahimi 13307*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13308*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 13309*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 13310*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13311*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13312*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 13313*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 13314*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT 13315*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_FFDH 13316*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->G: AES_128_GCM_SHA256,ffdhe6144,rsa_pss_rsae_sha256" \ 13317*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-RSA-PSS-RSAE-SHA256:+GROUP-FFDHE6144:+VERS-TLS1.3:%NO_TICKETS" \ 13318*62c56f98SSadaf Ebrahimi "$P_CLI ca_file=data_files/test-ca_cat12.crt debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=rsa_pss_rsae_sha256 groups=ffdhe6144" \ 13319*62c56f98SSadaf Ebrahimi 0 \ 13320*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 13321*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 13322*62c56f98SSadaf Ebrahimi -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ 13323*62c56f98SSadaf Ebrahimi -c "Certificate Verify: Signature algorithm ( 0804 )" \ 13324*62c56f98SSadaf Ebrahimi -c "NamedGroup: ffdhe6144 ( 103 )" \ 13325*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 13326*62c56f98SSadaf Ebrahimi -C "received HelloRetryRequest message" 13327*62c56f98SSadaf Ebrahimi 13328*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13329*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13330*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 13331*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 13332*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT 13333*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_FFDH 13334*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13335*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 13336*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 13337*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 13338*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 G->m: AES_128_GCM_SHA256,ffdhe8192,rsa_pss_rsae_sha256" \ 13339*62c56f98SSadaf Ebrahimi "$P_SRV crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=rsa_pss_rsae_sha256 groups=ffdhe8192 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ 13340*62c56f98SSadaf Ebrahimi "$G_NEXT_CLI_NO_CERT --debug=4 --single-key-share --x509cafile data_files/test-ca_cat12.crt --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-RSA-PSS-RSAE-SHA256:+GROUP-FFDHE8192:+VERS-TLS1.3:%NO_TICKETS" \ 13341*62c56f98SSadaf Ebrahimi 0 \ 13342*62c56f98SSadaf Ebrahimi -s "Protocol is TLSv1.3" \ 13343*62c56f98SSadaf Ebrahimi -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ 13344*62c56f98SSadaf Ebrahimi -s "received signature algorithm: 0x804" \ 13345*62c56f98SSadaf Ebrahimi -s "got named group: ffdhe8192(0104)" \ 13346*62c56f98SSadaf Ebrahimi -s "Certificate verification was skipped" \ 13347*62c56f98SSadaf Ebrahimi -C "received HelloRetryRequest message" 13348*62c56f98SSadaf Ebrahimi 13349*62c56f98SSadaf Ebrahimirequires_gnutls_tls1_3 13350*62c56f98SSadaf Ebrahimirequires_gnutls_next_no_ticket 13351*62c56f98SSadaf Ebrahimirequires_gnutls_next_disable_tls13_compat 13352*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13353*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_DEBUG_C 13354*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 13355*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE 13356*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT 13357*62c56f98SSadaf Ebrahimirequires_config_enabled PSA_WANT_ALG_FFDH 13358*62c56f98SSadaf Ebrahimiclient_needs_more_time 4 13359*62c56f98SSadaf Ebrahimirun_test "TLS 1.3 m->G: AES_128_GCM_SHA256,ffdhe8192,rsa_pss_rsae_sha256" \ 13360*62c56f98SSadaf Ebrahimi "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-RSA-PSS-RSAE-SHA256:+GROUP-FFDHE8192:+VERS-TLS1.3:%NO_TICKETS" \ 13361*62c56f98SSadaf Ebrahimi "$P_CLI ca_file=data_files/test-ca_cat12.crt debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=rsa_pss_rsae_sha256 groups=ffdhe8192" \ 13362*62c56f98SSadaf Ebrahimi 0 \ 13363*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" \ 13364*62c56f98SSadaf Ebrahimi -c "Protocol is TLSv1.3" \ 13365*62c56f98SSadaf Ebrahimi -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ 13366*62c56f98SSadaf Ebrahimi -c "Certificate Verify: Signature algorithm ( 0804 )" \ 13367*62c56f98SSadaf Ebrahimi -c "NamedGroup: ffdhe8192 ( 104 )" \ 13368*62c56f98SSadaf Ebrahimi -c "Verifying peer X.509 certificate... ok" \ 13369*62c56f98SSadaf Ebrahimi -C "received HelloRetryRequest message" 13370*62c56f98SSadaf Ebrahimi 13371*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 13372*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_SRV_C 13373*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_CLI_C 13374*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED 13375*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED 13376*62c56f98SSadaf Ebrahimirun_test "TLS 1.3: no HRR in case of PSK key exchange mode" \ 13377*62c56f98SSadaf Ebrahimi "$P_SRV nbio=2 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk groups=none" \ 13378*62c56f98SSadaf Ebrahimi "$P_CLI nbio=2 debug_level=3 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 13379*62c56f98SSadaf Ebrahimi 0 \ 13380*62c56f98SSadaf Ebrahimi -C "received HelloRetryRequest message" \ 13381*62c56f98SSadaf Ebrahimi -c "Selected key exchange mode: psk$" \ 13382*62c56f98SSadaf Ebrahimi -c "HTTP/1.0 200 OK" 13383*62c56f98SSadaf Ebrahimi 13384*62c56f98SSadaf Ebrahimi# Test heap memory usage after handshake 13385*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 13386*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_MEMORY_DEBUG 13387*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_MEMORY_BUFFER_ALLOC_C 13388*62c56f98SSadaf Ebrahimirequires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 13389*62c56f98SSadaf Ebrahimirequires_max_content_len 16384 13390*62c56f98SSadaf Ebrahimirun_tests_memory_after_hanshake 13391*62c56f98SSadaf Ebrahimi 13392*62c56f98SSadaf Ebrahimi# Final report 13393*62c56f98SSadaf Ebrahimi 13394*62c56f98SSadaf Ebrahimiecho "------------------------------------------------------------------------" 13395*62c56f98SSadaf Ebrahimi 13396*62c56f98SSadaf Ebrahimiif [ $FAILS = 0 ]; then 13397*62c56f98SSadaf Ebrahimi printf "PASSED" 13398*62c56f98SSadaf Ebrahimielse 13399*62c56f98SSadaf Ebrahimi printf "FAILED" 13400*62c56f98SSadaf Ebrahimifi 13401*62c56f98SSadaf EbrahimiPASSES=$(( $TESTS - $FAILS )) 13402*62c56f98SSadaf Ebrahimiecho " ($PASSES / $TESTS tests ($SKIPS skipped))" 13403*62c56f98SSadaf Ebrahimi 13404*62c56f98SSadaf Ebrahimiif [ $FAILS -gt 255 ]; then 13405*62c56f98SSadaf Ebrahimi # Clamp at 255 as caller gets exit code & 0xFF 13406*62c56f98SSadaf Ebrahimi # (so 256 would be 0, or success, etc) 13407*62c56f98SSadaf Ebrahimi FAILS=255 13408*62c56f98SSadaf Ebrahimifi 13409*62c56f98SSadaf Ebrahimiexit $FAILS 13410