diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 56e9c8b44..d9e777d8a 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -953,7 +953,8 @@ int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> derive keys" ) ); -#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) +#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) && \ + defined(MBEDTLS_SSL_SOME_MODES_USE_MAC) transform->encrypt_then_mac = session->encrypt_then_mac; #endif transform->minor_ver = ssl->minor_ver; diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 86c0ce5cf..51053d7ff 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -953,6 +953,20 @@ component_test_no_max_fragment_length_small_ssl_out_content_len () { if_build_succeeded tests/ssl-opt.sh -f "Max fragment length\|Large buffer" } +component_test_when_no_ciphersuites_have_mac () { + msg "build: when no ciphersuites have MAC" + scripts/config.pl unset MBEDTLS_CIPHER_NULL_CIPHER + scripts/config.pl unset MBEDTLS_ARC4_C + scripts/config.pl unset MBEDTLS_CIPHER_MODE_CBC + make + + msg "test: !MBEDTLS_SSL_SOME_MODES_USE_MAC" + make test + + msg "test ssl-opt.sh: !MBEDTLS_SSL_SOME_MODES_USE_MAC" + if_build_succeeded tests/ssl-opt.sh +} + component_test_null_entropy () { msg "build: default config with MBEDTLS_TEST_NULL_ENTROPY (ASan build)" scripts/config.pl set MBEDTLS_TEST_NULL_ENTROPY diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index cc7d8dcea..104a52f22 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -159,7 +159,8 @@ static int build_transforms( mbedtls_ssl_transform *t_in, * Setup transforms */ -#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) +#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) && \ + defined(MBEDTLS_SSL_SOME_MODES_USE_MAC) t_out->encrypt_then_mac = etm; t_in->encrypt_then_mac = etm; #else