From b0a1c5b0217a07d3542b37d131a2652d66e86175 Mon Sep 17 00:00:00 2001 From: Yuto Takano Date: Fri, 2 Jul 2021 10:10:49 +0100 Subject: [PATCH] Use `requires_max_content_len`, add check in Renegotiation - Abstract out repetitive checks for IN and OUT content lens - Remove unclear comment and redundant echo - Add content length constraints in Renegotiation with fragment length test Signed-off-by: Yuto Takano --- tests/ssl-opt.sh | 66 ++++++++++++++++++------------------------------ 1 file changed, 25 insertions(+), 41 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index a38c4dd53..bc38a3985 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -287,6 +287,12 @@ requires_openssl_with_fallback_scsv() { fi } +# skip next test if either IN_CONTENT_LEN or MAX_CONTENT_LEN are below a value +requires_max_content_len() { + requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" $1 + requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" $1 +} + # skip next test if GnuTLS isn't available requires_gnutls() { if [ -z "${GNUTLS_AVAILABLE:-}" ]; then @@ -2749,10 +2755,6 @@ run_test "Session resume using cache, DTLS: openssl server" \ # Tests for Max Fragment Length extension -if [ $MAX_CONTENT_LEN -ne 16384 ]; then - echo "Using non-default maximum content length $MAX_CONTENT_LEN instead of 16384 " -fi - requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: enabled, default" \ "$P_SRV debug_level=3" \ @@ -2827,9 +2829,7 @@ run_test "Max fragment length, DTLS: disabled, larger message" \ -S "Maximum outgoing record payload length is 16384" \ -c "fragment larger than.*maximum " -# Make sure it was compiled with lengths over 4096 -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 4096 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 4096 +requires_max_content_len 4096 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: used by client" \ "$P_SRV debug_level=3" \ @@ -2844,8 +2844,7 @@ run_test "Max fragment length: used by client" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 1024 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 1024 +requires_max_content_len 1024 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 512, server 1024" \ "$P_SRV debug_level=3 max_frag_len=1024" \ @@ -2860,8 +2859,7 @@ run_test "Max fragment length: client 512, server 1024" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 2048 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 2048 +requires_max_content_len 2048 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 512, server 2048" \ "$P_SRV debug_level=3 max_frag_len=2048" \ @@ -2876,8 +2874,7 @@ run_test "Max fragment length: client 512, server 2048" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 4096 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 4096 +requires_max_content_len 4096 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 512, server 4096" \ "$P_SRV debug_level=3 max_frag_len=4096" \ @@ -2892,8 +2889,7 @@ run_test "Max fragment length: client 512, server 4096" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 1024 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 1024 +requires_max_content_len 1024 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 1024, server 512" \ "$P_SRV debug_level=3 max_frag_len=512" \ @@ -2908,8 +2904,7 @@ run_test "Max fragment length: client 1024, server 512" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 2048 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 2048 +requires_max_content_len 2048 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 1024, server 2048" \ "$P_SRV debug_level=3 max_frag_len=2048" \ @@ -2924,8 +2919,7 @@ run_test "Max fragment length: client 1024, server 2048" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 4096 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 4096 +requires_max_content_len 4096 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 1024, server 4096" \ "$P_SRV debug_level=3 max_frag_len=4096" \ @@ -2940,8 +2934,7 @@ run_test "Max fragment length: client 1024, server 4096" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 2048 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 2048 +requires_max_content_len 2048 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 2048, server 512" \ "$P_SRV debug_level=3 max_frag_len=512" \ @@ -2956,8 +2949,7 @@ run_test "Max fragment length: client 2048, server 512" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 2048 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 2048 +requires_max_content_len 2048 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 2048, server 1024" \ "$P_SRV debug_level=3 max_frag_len=1024" \ @@ -2972,8 +2964,7 @@ run_test "Max fragment length: client 2048, server 1024" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 4096 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 4096 +requires_max_content_len 4096 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 2048, server 4096" \ "$P_SRV debug_level=3 max_frag_len=4096" \ @@ -2988,8 +2979,7 @@ run_test "Max fragment length: client 2048, server 4096" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 4096 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 4096 +requires_max_content_len 4096 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 4096, server 512" \ "$P_SRV debug_level=3 max_frag_len=512" \ @@ -3004,8 +2994,7 @@ run_test "Max fragment length: client 4096, server 512" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 4096 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 4096 +requires_max_content_len 4096 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 4096, server 1024" \ "$P_SRV debug_level=3 max_frag_len=1024" \ @@ -3020,8 +3009,7 @@ run_test "Max fragment length: client 4096, server 1024" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 4096 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 4096 +requires_max_content_len 4096 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client 4096, server 2048" \ "$P_SRV debug_level=3 max_frag_len=2048" \ @@ -3036,8 +3024,7 @@ run_test "Max fragment length: client 4096, server 2048" \ -s "server hello, max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 4096 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 4096 +requires_max_content_len 4096 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: used by server" \ "$P_SRV debug_level=3 max_frag_len=4096" \ @@ -3052,8 +3039,7 @@ run_test "Max fragment length: used by server" \ -S "server hello, max_fragment_length extension" \ -C "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 4096 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 4096 +requires_max_content_len 4096 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH requires_gnutls run_test "Max fragment length: gnutls server" \ @@ -3065,8 +3051,7 @@ run_test "Max fragment length: gnutls server" \ -c "client hello, adding max_fragment_length extension" \ -c "found max_fragment_length extension" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 2048 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 2048 +requires_max_content_len 2048 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client, message just fits" \ "$P_SRV debug_level=3" \ @@ -3083,8 +3068,7 @@ run_test "Max fragment length: client, message just fits" \ -c "2048 bytes written in 1 fragments" \ -s "2048 bytes read" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 2048 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 2048 +requires_max_content_len 2048 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: client, larger message" \ "$P_SRV debug_level=3" \ @@ -3102,8 +3086,7 @@ run_test "Max fragment length: client, larger message" \ -s "2048 bytes read" \ -s "297 bytes read" -requires_config_value_at_least "MBEDTLS_SSL_IN_CONTENT_LEN" 2048 -requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" 2048 +requires_max_content_len 2048 requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH run_test "Max fragment length: DTLS client, larger message" \ "$P_SRV debug_level=3 dtls=1" \ @@ -3215,6 +3198,7 @@ run_test "Renegotiation: double" \ requires_config_enabled MBEDTLS_SSL_RENEGOTIATION requires_config_enabled MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +requires_max_content_len 2048 run_test "Renegotiation with max fragment length: client 2048, server 512" \ "$P_SRV debug_level=3 exchanges=2 renegotiation=1 auth_mode=optional renegotiate=1 max_frag_len=512" \ "$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" \