mirror of
https://github.com/ARMmbed/mbedtls.git
synced 2025-06-04 22:13:31 +08:00

When MBEDTLS_SSL_ENCRYPT_THEN_MAC is enabled, but not MBEDTLS_SSL_SOME_MODES_USE_MAC, mbedtls_ssl_derive_keys() and build_transforms() will attempt to use a non-existent `encrypt_then_mac` field in the ssl_transform. Compile [ 93.7%]: ssl_tls.c [Error] ssl_tls.c@865,14: 'mbedtls_ssl_transform {aka struct mbedtls_ssl_transform}' ha s no member named 'encrypt_then_mac' [ERROR] ./mbed-os/features/mbedtls/src/ssl_tls.c: In function 'mbedtls_ssl_derive_keys' : ./mbed-os/features/mbedtls/src/ssl_tls.c:865:14: error: 'mbedtls_ssl_transform {aka str uct mbedtls_ssl_transform}' has no member named 'encrypt_then_mac' transform->encrypt_then_mac = session->encrypt_then_mac; ^~ Change mbedtls_ssl_derive_keys() and build_transforms() to only access `encrypt_then_mac` if `encrypt_then_mac` is actually present. Add a regression test to detect when we have regressions with configurations that do not include any MAC ciphersuites. Fixes d56ed2491be9 ("Reduce size of `ssl_transform` if no MAC ciphersuite is enabled")