Merge pull request #9316 from gilles-peskine-arm/test_suite_config-booleans-2.28
Backport 2.28: Report configuration settings in the outcome file
diff --git a/scripts/config.py b/scripts/config.py
index 22bdb5e..766b5af 100755
--- a/scripts/config.py
+++ b/scripts/config.py
@@ -389,6 +389,7 @@
self.default_path)
super().__init__()
self.filename = filename
+ self.inclusion_guard = None
self.current_section = 'header'
with open(filename, 'r', encoding='utf-8') as file:
self.templates = [self._parse_line(line) for line in file]
@@ -406,9 +407,11 @@
r'(?P<arguments>(?:\((?:\w|\s|,)*\))?)' +
r'(?P<separator>\s*)' +
r'(?P<value>.*)')
+ _ifndef_line_regexp = r'#ifndef (?P<inclusion_guard>\w+)'
_section_line_regexp = (r'\s*/?\*+\s*[\\@]name\s+SECTION:\s*' +
r'(?P<section>.*)[ */]*')
_config_line_regexp = re.compile(r'|'.join([_define_line_regexp,
+ _ifndef_line_regexp,
_section_line_regexp]))
def _parse_line(self, line):
"""Parse a line in config.h and return the corresponding template."""
@@ -419,10 +422,16 @@
elif m.group('section'):
self.current_section = m.group('section')
return line
+ elif m.group('inclusion_guard') and self.inclusion_guard is None:
+ self.inclusion_guard = m.group('inclusion_guard')
+ return line
else:
active = not m.group('commented_out')
name = m.group('name')
value = m.group('value')
+ if name == self.inclusion_guard and value == '':
+ # The file double-inclusion guard is not an option.
+ return line
template = (name,
m.group('indentation'),
m.group('define') + name +
diff --git a/tests/.gitignore b/tests/.gitignore
index 4678d8d..a5c09a7 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -3,13 +3,13 @@
*.log
/test_suite*
-data_files/mpi_write
-data_files/hmac_drbg_seed
-data_files/ctr_drbg_seed
-data_files/entropy_seed
+/data_files/mpi_write
+/data_files/hmac_drbg_seed
+/data_files/ctr_drbg_seed
+/data_files/entropy_seed
-include/test/instrument_record_status.h
+/include/test/instrument_record_status.h
-src/libmbed*
+/src/libmbed*
-libtestdriver1/*
+/libtestdriver1/*
diff --git a/tests/scripts/check-generated-files.sh b/tests/scripts/check-generated-files.sh
index b1b969f..21c2b7c 100755
--- a/tests/scripts/check-generated-files.sh
+++ b/tests/scripts/check-generated-files.sh
@@ -102,4 +102,5 @@
check scripts/generate_psa_constants.py programs/psa/psa_constant_names_generated.c
check tests/scripts/generate_psa_wrappers.py tests/include/test/psa_test_wrappers.h tests/src/psa_test_wrappers.c
check tests/scripts/generate_bignum_tests.py $(tests/scripts/generate_bignum_tests.py --list)
+check tests/scripts/generate_config_tests.py $(tests/scripts/generate_config_tests.py --list)
check tests/scripts/generate_psa_tests.py $(tests/scripts/generate_psa_tests.py --list)
diff --git a/tests/scripts/generate_config_tests.py b/tests/scripts/generate_config_tests.py
new file mode 100755
index 0000000..7b62a65
--- /dev/null
+++ b/tests/scripts/generate_config_tests.py
@@ -0,0 +1,164 @@
+#!/usr/bin/env python3
+"""Generate test data for configuration reporting.
+"""
+
+# Copyright The Mbed TLS Contributors
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+
+import re
+import sys
+from typing import Iterable, Iterator, List, Optional, Tuple
+
+import scripts_path # pylint: disable=unused-import
+import config
+from mbedtls_dev import test_case
+from mbedtls_dev import test_data_generation
+
+
+def single_setting_case(setting: config.Setting, when_on: bool,
+ dependencies: List[str],
+ note: Optional[str]) -> test_case.TestCase:
+ """Construct a test case for a boolean setting.
+
+ This test case passes if the setting and its dependencies are enabled,
+ and is skipped otherwise.
+
+ * setting: the setting to be tested.
+ * when_on: True to test with the setting enabled, or False to test
+ with the setting disabled.
+ * dependencies: extra dependencies for the test case.
+ * note: a note to add after the setting name in the test description.
+ This is generally a summary of dependencies, and is generally empty
+ if the given setting is only tested once.
+ """
+ base = setting.name if when_on else '!' + setting.name
+ tc = test_case.TestCase()
+ tc.set_function('pass')
+ description_suffix = ' (' + note + ')' if note else ''
+ tc.set_description('Config: ' + base + description_suffix)
+ tc.set_dependencies([base] + dependencies)
+ return tc
+
+
+# If foo is a setting that is only meaningful when bar is enabled, set
+# SIMPLE_DEPENDENCIES[foo]=bar. More generally, bar can be a colon-separated
+# list of settings, meaning that all the settings must be enabled. Each setting
+# in bar can be prefixed with '!' to negate it. This is the same syntax as a
+# depends_on directive in test data.
+# See also `dependencies_of_settting`.
+SIMPLE_DEPENDENCIES = {
+ 'MBEDTLS_AESNI_C': 'MBEDTLS_AES_C',
+ 'MBEDTLS_ERROR_STRERROR_DUMMY': '!MBEDTLS_ERROR_C',
+ 'MBEDTLS_GENPRIME': 'MBEDTLS_RSA_C',
+ 'MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES': 'MBEDTLS_ENTROPY_C',
+ 'MBEDTLS_NO_PLATFORM_ENTROPY': 'MBEDTLS_ENTROPY_C',
+ 'MBEDTLS_PKCS1_V15': 'MBEDTLS_RSA_C',
+ 'MBEDTLS_PKCS1_V21': 'MBEDTLS_RSA_C',
+ 'MBEDTLS_PSA_CRYPTO_CLIENT': '!MBEDTLS_PSA_CRYPTO_C',
+ 'MBEDTLS_PSA_INJECT_ENTROPY': 'MBEDTLS_PSA_CRYPTO_C',
+ 'MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS': 'MBEDTLS_PSA_CRYPTO_C',
+ 'MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL': 'MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C',
+}
+
+def dependencies_of_setting(cfg: config.Config,
+ setting: config.Setting) -> Optional[str]:
+ """Return dependencies without which a setting is not meaningful.
+
+ The dependencies of a setting express when a setting can be enabled and
+ is relevant. For example, if ``check_config.h`` errors out when
+ ``defined(FOO) && !defined(BAR)``, then ``BAR`` is a dependency of ``FOO``.
+ If ``FOO`` has no effect when ``CORGE`` is disabled, then ``CORGE``
+ is a dependency of ``FOO``.
+
+ The return value can be a colon-separated list of settings, if the setting
+ is only meaningful when all of these settings are enabled. Each setting can
+ be negated by prefixing them with '!'. This is the same syntax as a
+ depends_on directive in test data.
+ """
+ #pylint: disable=too-many-return-statements
+ name = setting.name
+ if name in SIMPLE_DEPENDENCIES:
+ return SIMPLE_DEPENDENCIES[name]
+ if name.startswith('MBEDTLS_') and not name.endswith('_C'):
+ if name.startswith('MBEDTLS_CIPHER_PADDING_'):
+ return 'MBEDTLS_CIPHER_C:MBEDTLS_CIPHER_MODE_CBC'
+ if name.startswith('MBEDTLS_PK_PARSE_EC_'):
+ return 'MBEDTLS_PK_C:MBEDTLS_PK_HAVE_ECC_KEYS'
+ # For TLS settings, insist on having them once off and once on in
+ # a configuration where both client support and server support are
+ # enabled. The settings are also meaningful when only one side is
+ # enabled, but there isn't much point in having separate records
+ # for client-side and server-side, so we keep things simple.
+ # Requiring both sides to be enabled also means we know we'll run
+ # tests that only run Mbed TLS against itself, which only run in
+ # configurations with both sides enabled.
+ if name.startswith('MBEDTLS_SSL_TLS1_3_'):
+ return 'MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL'
+ if name.startswith('MBEDTLS_SSL_DTLS_'):
+ return 'MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS'
+ if name.startswith('MBEDTLS_SSL_'):
+ return 'MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C'
+ for pos in re.finditer(r'_', name):
+ super_name = name[:pos.start()] + '_C'
+ if cfg.known(super_name):
+ return super_name
+ return None
+
+def conditions_for_setting(cfg: config.Config,
+ setting: config.Setting
+ ) -> Iterator[Tuple[List[str], str]]:
+ """Enumerate the conditions under which to test the given setting.
+
+ * cfg: all configuration settings.
+ * setting: the setting to be tested.
+
+ Generate a stream of conditions, i.e. extra dependencies to test with
+ together with a human-readable explanation of each dependency. Some
+ typical cases:
+
+ * By default, generate a one-element stream with no extra dependencies.
+ * If the setting is ignored unless some other setting is enabled, generate
+ a one-element stream with that other setting as an extra dependency.
+ * If the setting is known to interact with some other setting, generate
+ a stream with one element where this setting is on and one where it's off.
+ * To skip the setting altogether, generate an empty stream.
+ """
+ name = setting.name
+ if name.endswith('_ALT') and not config.is_seamless_alt(name):
+ # We don't test alt implementations, except (most) platform alts
+ return
+ dependencies = dependencies_of_setting(cfg, setting)
+ if dependencies:
+ yield [dependencies], ''
+ return
+ yield [], ''
+
+
+def enumerate_boolean_setting_cases(cfg: config.Config
+ ) -> Iterable[test_case.TestCase]:
+ """Emit test cases for all boolean settings."""
+ for name in sorted(cfg.settings.keys()):
+ setting = cfg.settings[name]
+ if not name.startswith('PSA_WANT_') and setting.value:
+ continue # non-boolean setting
+ for when_on in True, False:
+ for deps, note in conditions_for_setting(cfg, setting):
+ yield single_setting_case(setting, when_on, deps, note)
+
+
+
+class ConfigTestGenerator(test_data_generation.TestGenerator):
+ """Generate test cases for configuration reporting."""
+
+ def __init__(self, settings):
+ self.mbedtls_config = config.ConfigFile()
+ self.targets['test_suite_config.mbedtls_boolean'] = \
+ lambda: enumerate_boolean_setting_cases(self.mbedtls_config)
+ self.psa_config = config.ConfigFile('include/psa/crypto_config.h')
+ self.targets['test_suite_config.psa_boolean'] = \
+ lambda: enumerate_boolean_setting_cases(self.psa_config)
+ super().__init__(settings)
+
+
+if __name__ == '__main__':
+ test_data_generation.main(sys.argv[1:], __doc__, ConfigTestGenerator)
diff --git a/tests/suites/test_suite_config.crypto_combinations.data b/tests/suites/test_suite_config.crypto_combinations.data
new file mode 100644
index 0000000..d3287d2
--- /dev/null
+++ b/tests/suites/test_suite_config.crypto_combinations.data
@@ -0,0 +1,9 @@
+# Interesting combinations of low-level crypto options
+
+Config: ECC: Weierstrass curves only
+depends_on:MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED:!MBEDTLS_ECP_MONTGOMERY_ENABLED
+pass:
+
+Config: ECC: Montgomery curves only
+depends_on:!MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED:MBEDTLS_ECP_MONTGOMERY_ENABLED
+pass:
diff --git a/tests/suites/test_suite_config.function b/tests/suites/test_suite_config.function
new file mode 100644
index 0000000..9e9dd01
--- /dev/null
+++ b/tests/suites/test_suite_config.function
@@ -0,0 +1,14 @@
+/* BEGIN_HEADER */
+
+/* END_HEADER */
+
+/* BEGIN_CASE */
+/* This test case always passes. It is intended solely for configuration
+ * reporting in the outcome file. Write test cases using this function
+ * with dependencies to record in which configurations the dependencies
+ * are met. */
+void pass()
+{
+ goto exit;
+}
+/* END_CASE */
diff --git a/tests/suites/test_suite_config.mbedtls_boolean.data b/tests/suites/test_suite_config.mbedtls_boolean.data
new file mode 100644
index 0000000..1a1d13f
--- /dev/null
+++ b/tests/suites/test_suite_config.mbedtls_boolean.data
@@ -0,0 +1,1755 @@
+# Automatically generated by generate_config_tests.py. Do not edit!
+
+Config: MBEDTLS_AESNI_C
+depends_on:MBEDTLS_AESNI_C:MBEDTLS_AES_C
+pass:
+
+Config: !MBEDTLS_AESNI_C
+depends_on:!MBEDTLS_AESNI_C:MBEDTLS_AES_C
+pass:
+
+Config: MBEDTLS_AES_C
+depends_on:MBEDTLS_AES_C
+pass:
+
+Config: !MBEDTLS_AES_C
+depends_on:!MBEDTLS_AES_C
+pass:
+
+Config: MBEDTLS_AES_FEWER_TABLES
+depends_on:MBEDTLS_AES_FEWER_TABLES:MBEDTLS_AES_C
+pass:
+
+Config: !MBEDTLS_AES_FEWER_TABLES
+depends_on:!MBEDTLS_AES_FEWER_TABLES:MBEDTLS_AES_C
+pass:
+
+Config: MBEDTLS_AES_ROM_TABLES
+depends_on:MBEDTLS_AES_ROM_TABLES:MBEDTLS_AES_C
+pass:
+
+Config: !MBEDTLS_AES_ROM_TABLES
+depends_on:!MBEDTLS_AES_ROM_TABLES:MBEDTLS_AES_C
+pass:
+
+Config: MBEDTLS_ARC4_C
+depends_on:MBEDTLS_ARC4_C
+pass:
+
+Config: !MBEDTLS_ARC4_C
+depends_on:!MBEDTLS_ARC4_C
+pass:
+
+Config: MBEDTLS_ARIA_C
+depends_on:MBEDTLS_ARIA_C
+pass:
+
+Config: !MBEDTLS_ARIA_C
+depends_on:!MBEDTLS_ARIA_C
+pass:
+
+Config: MBEDTLS_ASN1_PARSE_C
+depends_on:MBEDTLS_ASN1_PARSE_C
+pass:
+
+Config: !MBEDTLS_ASN1_PARSE_C
+depends_on:!MBEDTLS_ASN1_PARSE_C
+pass:
+
+Config: MBEDTLS_ASN1_WRITE_C
+depends_on:MBEDTLS_ASN1_WRITE_C
+pass:
+
+Config: !MBEDTLS_ASN1_WRITE_C
+depends_on:!MBEDTLS_ASN1_WRITE_C
+pass:
+
+Config: MBEDTLS_BASE64_C
+depends_on:MBEDTLS_BASE64_C
+pass:
+
+Config: !MBEDTLS_BASE64_C
+depends_on:!MBEDTLS_BASE64_C
+pass:
+
+Config: MBEDTLS_BIGNUM_C
+depends_on:MBEDTLS_BIGNUM_C
+pass:
+
+Config: !MBEDTLS_BIGNUM_C
+depends_on:!MBEDTLS_BIGNUM_C
+pass:
+
+Config: MBEDTLS_BLOWFISH_C
+depends_on:MBEDTLS_BLOWFISH_C
+pass:
+
+Config: !MBEDTLS_BLOWFISH_C
+depends_on:!MBEDTLS_BLOWFISH_C
+pass:
+
+Config: MBEDTLS_CAMELLIA_C
+depends_on:MBEDTLS_CAMELLIA_C
+pass:
+
+Config: !MBEDTLS_CAMELLIA_C
+depends_on:!MBEDTLS_CAMELLIA_C
+pass:
+
+Config: MBEDTLS_CAMELLIA_SMALL_MEMORY
+depends_on:MBEDTLS_CAMELLIA_SMALL_MEMORY:MBEDTLS_CAMELLIA_C
+pass:
+
+Config: !MBEDTLS_CAMELLIA_SMALL_MEMORY
+depends_on:!MBEDTLS_CAMELLIA_SMALL_MEMORY:MBEDTLS_CAMELLIA_C
+pass:
+
+Config: MBEDTLS_CCM_C
+depends_on:MBEDTLS_CCM_C
+pass:
+
+Config: !MBEDTLS_CCM_C
+depends_on:!MBEDTLS_CCM_C
+pass:
+
+Config: MBEDTLS_CERTS_C
+depends_on:MBEDTLS_CERTS_C
+pass:
+
+Config: !MBEDTLS_CERTS_C
+depends_on:!MBEDTLS_CERTS_C
+pass:
+
+Config: MBEDTLS_CHACHA20_C
+depends_on:MBEDTLS_CHACHA20_C
+pass:
+
+Config: !MBEDTLS_CHACHA20_C
+depends_on:!MBEDTLS_CHACHA20_C
+pass:
+
+Config: MBEDTLS_CHACHAPOLY_C
+depends_on:MBEDTLS_CHACHAPOLY_C
+pass:
+
+Config: !MBEDTLS_CHACHAPOLY_C
+depends_on:!MBEDTLS_CHACHAPOLY_C
+pass:
+
+Config: MBEDTLS_CHECK_PARAMS
+depends_on:MBEDTLS_CHECK_PARAMS
+pass:
+
+Config: !MBEDTLS_CHECK_PARAMS
+depends_on:!MBEDTLS_CHECK_PARAMS
+pass:
+
+Config: MBEDTLS_CHECK_PARAMS_ASSERT
+depends_on:MBEDTLS_CHECK_PARAMS_ASSERT
+pass:
+
+Config: !MBEDTLS_CHECK_PARAMS_ASSERT
+depends_on:!MBEDTLS_CHECK_PARAMS_ASSERT
+pass:
+
+Config: MBEDTLS_CHECK_RETURN_WARNING
+depends_on:MBEDTLS_CHECK_RETURN_WARNING
+pass:
+
+Config: !MBEDTLS_CHECK_RETURN_WARNING
+depends_on:!MBEDTLS_CHECK_RETURN_WARNING
+pass:
+
+Config: MBEDTLS_CIPHER_C
+depends_on:MBEDTLS_CIPHER_C
+pass:
+
+Config: !MBEDTLS_CIPHER_C
+depends_on:!MBEDTLS_CIPHER_C
+pass:
+
+Config: MBEDTLS_CIPHER_MODE_CBC
+depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_C
+pass:
+
+Config: !MBEDTLS_CIPHER_MODE_CBC
+depends_on:!MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_C
+pass:
+
+Config: MBEDTLS_CIPHER_MODE_CFB
+depends_on:MBEDTLS_CIPHER_MODE_CFB:MBEDTLS_CIPHER_C
+pass:
+
+Config: !MBEDTLS_CIPHER_MODE_CFB
+depends_on:!MBEDTLS_CIPHER_MODE_CFB:MBEDTLS_CIPHER_C
+pass:
+
+Config: MBEDTLS_CIPHER_MODE_CTR
+depends_on:MBEDTLS_CIPHER_MODE_CTR:MBEDTLS_CIPHER_C
+pass:
+
+Config: !MBEDTLS_CIPHER_MODE_CTR
+depends_on:!MBEDTLS_CIPHER_MODE_CTR:MBEDTLS_CIPHER_C
+pass:
+
+Config: MBEDTLS_CIPHER_MODE_OFB
+depends_on:MBEDTLS_CIPHER_MODE_OFB:MBEDTLS_CIPHER_C
+pass:
+
+Config: !MBEDTLS_CIPHER_MODE_OFB
+depends_on:!MBEDTLS_CIPHER_MODE_OFB:MBEDTLS_CIPHER_C
+pass:
+
+Config: MBEDTLS_CIPHER_MODE_XTS
+depends_on:MBEDTLS_CIPHER_MODE_XTS:MBEDTLS_CIPHER_C
+pass:
+
+Config: !MBEDTLS_CIPHER_MODE_XTS
+depends_on:!MBEDTLS_CIPHER_MODE_XTS:MBEDTLS_CIPHER_C
+pass:
+
+Config: MBEDTLS_CIPHER_NULL_CIPHER
+depends_on:MBEDTLS_CIPHER_NULL_CIPHER:MBEDTLS_CIPHER_C
+pass:
+
+Config: !MBEDTLS_CIPHER_NULL_CIPHER
+depends_on:!MBEDTLS_CIPHER_NULL_CIPHER:MBEDTLS_CIPHER_C
+pass:
+
+Config: MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
+depends_on:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS:MBEDTLS_CIPHER_C:MBEDTLS_CIPHER_MODE_CBC
+pass:
+
+Config: !MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
+depends_on:!MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS:MBEDTLS_CIPHER_C:MBEDTLS_CIPHER_MODE_CBC
+pass:
+
+Config: MBEDTLS_CIPHER_PADDING_PKCS7
+depends_on:MBEDTLS_CIPHER_PADDING_PKCS7:MBEDTLS_CIPHER_C:MBEDTLS_CIPHER_MODE_CBC
+pass:
+
+Config: !MBEDTLS_CIPHER_PADDING_PKCS7
+depends_on:!MBEDTLS_CIPHER_PADDING_PKCS7:MBEDTLS_CIPHER_C:MBEDTLS_CIPHER_MODE_CBC
+pass:
+
+Config: MBEDTLS_CIPHER_PADDING_ZEROS
+depends_on:MBEDTLS_CIPHER_PADDING_ZEROS:MBEDTLS_CIPHER_C:MBEDTLS_CIPHER_MODE_CBC
+pass:
+
+Config: !MBEDTLS_CIPHER_PADDING_ZEROS
+depends_on:!MBEDTLS_CIPHER_PADDING_ZEROS:MBEDTLS_CIPHER_C:MBEDTLS_CIPHER_MODE_CBC
+pass:
+
+Config: MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
+depends_on:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN:MBEDTLS_CIPHER_C:MBEDTLS_CIPHER_MODE_CBC
+pass:
+
+Config: !MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
+depends_on:!MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN:MBEDTLS_CIPHER_C:MBEDTLS_CIPHER_MODE_CBC
+pass:
+
+Config: MBEDTLS_CMAC_C
+depends_on:MBEDTLS_CMAC_C
+pass:
+
+Config: !MBEDTLS_CMAC_C
+depends_on:!MBEDTLS_CMAC_C
+pass:
+
+Config: MBEDTLS_CTR_DRBG_C
+depends_on:MBEDTLS_CTR_DRBG_C
+pass:
+
+Config: !MBEDTLS_CTR_DRBG_C
+depends_on:!MBEDTLS_CTR_DRBG_C
+pass:
+
+Config: MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
+depends_on:MBEDTLS_CTR_DRBG_USE_128_BIT_KEY:MBEDTLS_CTR_DRBG_C
+pass:
+
+Config: !MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
+depends_on:!MBEDTLS_CTR_DRBG_USE_128_BIT_KEY:MBEDTLS_CTR_DRBG_C
+pass:
+
+Config: MBEDTLS_DEBUG_C
+depends_on:MBEDTLS_DEBUG_C
+pass:
+
+Config: !MBEDTLS_DEBUG_C
+depends_on:!MBEDTLS_DEBUG_C
+pass:
+
+Config: MBEDTLS_DEPRECATED_REMOVED
+depends_on:MBEDTLS_DEPRECATED_REMOVED
+pass:
+
+Config: !MBEDTLS_DEPRECATED_REMOVED
+depends_on:!MBEDTLS_DEPRECATED_REMOVED
+pass:
+
+Config: MBEDTLS_DEPRECATED_WARNING
+depends_on:MBEDTLS_DEPRECATED_WARNING
+pass:
+
+Config: !MBEDTLS_DEPRECATED_WARNING
+depends_on:!MBEDTLS_DEPRECATED_WARNING
+pass:
+
+Config: MBEDTLS_DES_C
+depends_on:MBEDTLS_DES_C
+pass:
+
+Config: !MBEDTLS_DES_C
+depends_on:!MBEDTLS_DES_C
+pass:
+
+Config: MBEDTLS_DHM_C
+depends_on:MBEDTLS_DHM_C
+pass:
+
+Config: !MBEDTLS_DHM_C
+depends_on:!MBEDTLS_DHM_C
+pass:
+
+Config: MBEDTLS_ECDH_C
+depends_on:MBEDTLS_ECDH_C
+pass:
+
+Config: !MBEDTLS_ECDH_C
+depends_on:!MBEDTLS_ECDH_C
+pass:
+
+Config: MBEDTLS_ECDH_LEGACY_CONTEXT
+depends_on:MBEDTLS_ECDH_LEGACY_CONTEXT:MBEDTLS_ECDH_C
+pass:
+
+Config: !MBEDTLS_ECDH_LEGACY_CONTEXT
+depends_on:!MBEDTLS_ECDH_LEGACY_CONTEXT:MBEDTLS_ECDH_C
+pass:
+
+Config: MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
+depends_on:MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED:MBEDTLS_ECDH_C
+pass:
+
+Config: !MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
+depends_on:!MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED:MBEDTLS_ECDH_C
+pass:
+
+Config: MBEDTLS_ECDSA_C
+depends_on:MBEDTLS_ECDSA_C
+pass:
+
+Config: !MBEDTLS_ECDSA_C
+depends_on:!MBEDTLS_ECDSA_C
+pass:
+
+Config: MBEDTLS_ECDSA_DETERMINISTIC
+depends_on:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECDSA_C
+pass:
+
+Config: !MBEDTLS_ECDSA_DETERMINISTIC
+depends_on:!MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECDSA_C
+pass:
+
+Config: MBEDTLS_ECJPAKE_C
+depends_on:MBEDTLS_ECJPAKE_C
+pass:
+
+Config: !MBEDTLS_ECJPAKE_C
+depends_on:!MBEDTLS_ECJPAKE_C
+pass:
+
+Config: MBEDTLS_ECP_C
+depends_on:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_C
+depends_on:!MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_BP256R1_ENABLED
+depends_on:MBEDTLS_ECP_DP_BP256R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_BP256R1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_BP256R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_BP384R1_ENABLED
+depends_on:MBEDTLS_ECP_DP_BP384R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_BP384R1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_BP384R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_BP512R1_ENABLED
+depends_on:MBEDTLS_ECP_DP_BP512R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_BP512R1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_BP512R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_CURVE25519_ENABLED
+depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_CURVE25519_ENABLED
+depends_on:!MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_CURVE448_ENABLED
+depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_CURVE448_ENABLED
+depends_on:!MBEDTLS_ECP_DP_CURVE448_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_SECP192K1_ENABLED
+depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_SECP192K1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_SECP192K1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_SECP192R1_ENABLED
+depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_SECP192R1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_SECP224K1_ENABLED
+depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_SECP224K1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_SECP224R1_ENABLED
+depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_SECP224R1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_SECP256K1_ENABLED
+depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_SECP256K1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_SECP256K1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_SECP256R1_ENABLED
+depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_SECP256R1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_SECP384R1_ENABLED
+depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_SECP384R1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_DP_SECP521R1_ENABLED
+depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_DP_SECP521R1_ENABLED
+depends_on:!MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_NIST_OPTIM
+depends_on:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_NIST_OPTIM
+depends_on:!MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_NO_FALLBACK
+depends_on:MBEDTLS_ECP_NO_FALLBACK:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_NO_FALLBACK
+depends_on:!MBEDTLS_ECP_NO_FALLBACK:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_NO_INTERNAL_RNG
+depends_on:MBEDTLS_ECP_NO_INTERNAL_RNG:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_NO_INTERNAL_RNG
+depends_on:!MBEDTLS_ECP_NO_INTERNAL_RNG:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ECP_RESTARTABLE
+depends_on:MBEDTLS_ECP_RESTARTABLE:MBEDTLS_ECP_C
+pass:
+
+Config: !MBEDTLS_ECP_RESTARTABLE
+depends_on:!MBEDTLS_ECP_RESTARTABLE:MBEDTLS_ECP_C
+pass:
+
+Config: MBEDTLS_ENABLE_WEAK_CIPHERSUITES
+depends_on:MBEDTLS_ENABLE_WEAK_CIPHERSUITES
+pass:
+
+Config: !MBEDTLS_ENABLE_WEAK_CIPHERSUITES
+depends_on:!MBEDTLS_ENABLE_WEAK_CIPHERSUITES
+pass:
+
+Config: MBEDTLS_ENTROPY_C
+depends_on:MBEDTLS_ENTROPY_C
+pass:
+
+Config: !MBEDTLS_ENTROPY_C
+depends_on:!MBEDTLS_ENTROPY_C
+pass:
+
+Config: MBEDTLS_ENTROPY_FORCE_SHA256
+depends_on:MBEDTLS_ENTROPY_FORCE_SHA256:MBEDTLS_ENTROPY_C
+pass:
+
+Config: !MBEDTLS_ENTROPY_FORCE_SHA256
+depends_on:!MBEDTLS_ENTROPY_FORCE_SHA256:MBEDTLS_ENTROPY_C
+pass:
+
+Config: MBEDTLS_ENTROPY_NV_SEED
+depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_ENTROPY_C
+pass:
+
+Config: !MBEDTLS_ENTROPY_NV_SEED
+depends_on:!MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_ENTROPY_C
+pass:
+
+Config: MBEDTLS_ERROR_C
+depends_on:MBEDTLS_ERROR_C
+pass:
+
+Config: !MBEDTLS_ERROR_C
+depends_on:!MBEDTLS_ERROR_C
+pass:
+
+Config: MBEDTLS_ERROR_STRERROR_DUMMY
+depends_on:MBEDTLS_ERROR_STRERROR_DUMMY:!MBEDTLS_ERROR_C
+pass:
+
+Config: !MBEDTLS_ERROR_STRERROR_DUMMY
+depends_on:!MBEDTLS_ERROR_STRERROR_DUMMY:!MBEDTLS_ERROR_C
+pass:
+
+Config: MBEDTLS_FS_IO
+depends_on:MBEDTLS_FS_IO
+pass:
+
+Config: !MBEDTLS_FS_IO
+depends_on:!MBEDTLS_FS_IO
+pass:
+
+Config: MBEDTLS_GCM_C
+depends_on:MBEDTLS_GCM_C
+pass:
+
+Config: !MBEDTLS_GCM_C
+depends_on:!MBEDTLS_GCM_C
+pass:
+
+Config: MBEDTLS_GENPRIME
+depends_on:MBEDTLS_GENPRIME:MBEDTLS_RSA_C
+pass:
+
+Config: !MBEDTLS_GENPRIME
+depends_on:!MBEDTLS_GENPRIME:MBEDTLS_RSA_C
+pass:
+
+Config: MBEDTLS_HAVEGE_C
+depends_on:MBEDTLS_HAVEGE_C
+pass:
+
+Config: !MBEDTLS_HAVEGE_C
+depends_on:!MBEDTLS_HAVEGE_C
+pass:
+
+Config: MBEDTLS_HAVE_ASM
+depends_on:MBEDTLS_HAVE_ASM
+pass:
+
+Config: !MBEDTLS_HAVE_ASM
+depends_on:!MBEDTLS_HAVE_ASM
+pass:
+
+Config: MBEDTLS_HAVE_SSE2
+depends_on:MBEDTLS_HAVE_SSE2
+pass:
+
+Config: !MBEDTLS_HAVE_SSE2
+depends_on:!MBEDTLS_HAVE_SSE2
+pass:
+
+Config: MBEDTLS_HAVE_TIME
+depends_on:MBEDTLS_HAVE_TIME
+pass:
+
+Config: !MBEDTLS_HAVE_TIME
+depends_on:!MBEDTLS_HAVE_TIME
+pass:
+
+Config: MBEDTLS_HAVE_TIME_DATE
+depends_on:MBEDTLS_HAVE_TIME_DATE
+pass:
+
+Config: !MBEDTLS_HAVE_TIME_DATE
+depends_on:!MBEDTLS_HAVE_TIME_DATE
+pass:
+
+Config: MBEDTLS_HKDF_C
+depends_on:MBEDTLS_HKDF_C
+pass:
+
+Config: !MBEDTLS_HKDF_C
+depends_on:!MBEDTLS_HKDF_C
+pass:
+
+Config: MBEDTLS_HMAC_DRBG_C
+depends_on:MBEDTLS_HMAC_DRBG_C
+pass:
+
+Config: !MBEDTLS_HMAC_DRBG_C
+depends_on:!MBEDTLS_HMAC_DRBG_C
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
+pass:
+
+Config: MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
+depends_on:MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
+pass:
+
+Config: !MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
+depends_on:!MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
+pass:
+
+Config: MBEDTLS_MD2_C
+depends_on:MBEDTLS_MD2_C
+pass:
+
+Config: !MBEDTLS_MD2_C
+depends_on:!MBEDTLS_MD2_C
+pass:
+
+Config: MBEDTLS_MD4_C
+depends_on:MBEDTLS_MD4_C
+pass:
+
+Config: !MBEDTLS_MD4_C
+depends_on:!MBEDTLS_MD4_C
+pass:
+
+Config: MBEDTLS_MD5_C
+depends_on:MBEDTLS_MD5_C
+pass:
+
+Config: !MBEDTLS_MD5_C
+depends_on:!MBEDTLS_MD5_C
+pass:
+
+Config: MBEDTLS_MD_C
+depends_on:MBEDTLS_MD_C
+pass:
+
+Config: !MBEDTLS_MD_C
+depends_on:!MBEDTLS_MD_C
+pass:
+
+Config: MBEDTLS_MEMORY_BACKTRACE
+depends_on:MBEDTLS_MEMORY_BACKTRACE
+pass:
+
+Config: !MBEDTLS_MEMORY_BACKTRACE
+depends_on:!MBEDTLS_MEMORY_BACKTRACE
+pass:
+
+Config: MBEDTLS_MEMORY_BUFFER_ALLOC_C
+depends_on:MBEDTLS_MEMORY_BUFFER_ALLOC_C
+pass:
+
+Config: !MBEDTLS_MEMORY_BUFFER_ALLOC_C
+depends_on:!MBEDTLS_MEMORY_BUFFER_ALLOC_C
+pass:
+
+Config: MBEDTLS_MEMORY_DEBUG
+depends_on:MBEDTLS_MEMORY_DEBUG
+pass:
+
+Config: !MBEDTLS_MEMORY_DEBUG
+depends_on:!MBEDTLS_MEMORY_DEBUG
+pass:
+
+Config: MBEDTLS_NET_C
+depends_on:MBEDTLS_NET_C
+pass:
+
+Config: !MBEDTLS_NET_C
+depends_on:!MBEDTLS_NET_C
+pass:
+
+Config: MBEDTLS_NIST_KW_C
+depends_on:MBEDTLS_NIST_KW_C
+pass:
+
+Config: !MBEDTLS_NIST_KW_C
+depends_on:!MBEDTLS_NIST_KW_C
+pass:
+
+Config: MBEDTLS_NO_64BIT_MULTIPLICATION
+depends_on:MBEDTLS_NO_64BIT_MULTIPLICATION
+pass:
+
+Config: !MBEDTLS_NO_64BIT_MULTIPLICATION
+depends_on:!MBEDTLS_NO_64BIT_MULTIPLICATION
+pass:
+
+Config: MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
+depends_on:MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES:MBEDTLS_ENTROPY_C
+pass:
+
+Config: !MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
+depends_on:!MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES:MBEDTLS_ENTROPY_C
+pass:
+
+Config: MBEDTLS_NO_PLATFORM_ENTROPY
+depends_on:MBEDTLS_NO_PLATFORM_ENTROPY:MBEDTLS_ENTROPY_C
+pass:
+
+Config: !MBEDTLS_NO_PLATFORM_ENTROPY
+depends_on:!MBEDTLS_NO_PLATFORM_ENTROPY:MBEDTLS_ENTROPY_C
+pass:
+
+Config: MBEDTLS_NO_UDBL_DIVISION
+depends_on:MBEDTLS_NO_UDBL_DIVISION
+pass:
+
+Config: !MBEDTLS_NO_UDBL_DIVISION
+depends_on:!MBEDTLS_NO_UDBL_DIVISION
+pass:
+
+Config: MBEDTLS_OID_C
+depends_on:MBEDTLS_OID_C
+pass:
+
+Config: !MBEDTLS_OID_C
+depends_on:!MBEDTLS_OID_C
+pass:
+
+Config: MBEDTLS_PADLOCK_C
+depends_on:MBEDTLS_PADLOCK_C
+pass:
+
+Config: !MBEDTLS_PADLOCK_C
+depends_on:!MBEDTLS_PADLOCK_C
+pass:
+
+Config: MBEDTLS_PEM_PARSE_C
+depends_on:MBEDTLS_PEM_PARSE_C
+pass:
+
+Config: !MBEDTLS_PEM_PARSE_C
+depends_on:!MBEDTLS_PEM_PARSE_C
+pass:
+
+Config: MBEDTLS_PEM_WRITE_C
+depends_on:MBEDTLS_PEM_WRITE_C
+pass:
+
+Config: !MBEDTLS_PEM_WRITE_C
+depends_on:!MBEDTLS_PEM_WRITE_C
+pass:
+
+Config: MBEDTLS_PKCS11_C
+depends_on:MBEDTLS_PKCS11_C
+pass:
+
+Config: !MBEDTLS_PKCS11_C
+depends_on:!MBEDTLS_PKCS11_C
+pass:
+
+Config: MBEDTLS_PKCS12_C
+depends_on:MBEDTLS_PKCS12_C
+pass:
+
+Config: !MBEDTLS_PKCS12_C
+depends_on:!MBEDTLS_PKCS12_C
+pass:
+
+Config: MBEDTLS_PKCS1_V15
+depends_on:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C
+pass:
+
+Config: !MBEDTLS_PKCS1_V15
+depends_on:!MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C
+pass:
+
+Config: MBEDTLS_PKCS1_V21
+depends_on:MBEDTLS_PKCS1_V21:MBEDTLS_RSA_C
+pass:
+
+Config: !MBEDTLS_PKCS1_V21
+depends_on:!MBEDTLS_PKCS1_V21:MBEDTLS_RSA_C
+pass:
+
+Config: MBEDTLS_PKCS5_C
+depends_on:MBEDTLS_PKCS5_C
+pass:
+
+Config: !MBEDTLS_PKCS5_C
+depends_on:!MBEDTLS_PKCS5_C
+pass:
+
+Config: MBEDTLS_PK_C
+depends_on:MBEDTLS_PK_C
+pass:
+
+Config: !MBEDTLS_PK_C
+depends_on:!MBEDTLS_PK_C
+pass:
+
+Config: MBEDTLS_PK_PARSE_C
+depends_on:MBEDTLS_PK_PARSE_C
+pass:
+
+Config: !MBEDTLS_PK_PARSE_C
+depends_on:!MBEDTLS_PK_PARSE_C
+pass:
+
+Config: MBEDTLS_PK_PARSE_EC_EXTENDED
+depends_on:MBEDTLS_PK_PARSE_EC_EXTENDED:MBEDTLS_PK_C:MBEDTLS_PK_HAVE_ECC_KEYS
+pass:
+
+Config: !MBEDTLS_PK_PARSE_EC_EXTENDED
+depends_on:!MBEDTLS_PK_PARSE_EC_EXTENDED:MBEDTLS_PK_C:MBEDTLS_PK_HAVE_ECC_KEYS
+pass:
+
+Config: MBEDTLS_PK_RSA_ALT_SUPPORT
+depends_on:MBEDTLS_PK_RSA_ALT_SUPPORT:MBEDTLS_PK_C
+pass:
+
+Config: !MBEDTLS_PK_RSA_ALT_SUPPORT
+depends_on:!MBEDTLS_PK_RSA_ALT_SUPPORT:MBEDTLS_PK_C
+pass:
+
+Config: MBEDTLS_PK_WRITE_C
+depends_on:MBEDTLS_PK_WRITE_C
+pass:
+
+Config: !MBEDTLS_PK_WRITE_C
+depends_on:!MBEDTLS_PK_WRITE_C
+pass:
+
+Config: MBEDTLS_PLATFORM_C
+depends_on:MBEDTLS_PLATFORM_C
+pass:
+
+Config: !MBEDTLS_PLATFORM_C
+depends_on:!MBEDTLS_PLATFORM_C
+pass:
+
+Config: MBEDTLS_PLATFORM_EXIT_ALT
+depends_on:MBEDTLS_PLATFORM_EXIT_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: !MBEDTLS_PLATFORM_EXIT_ALT
+depends_on:!MBEDTLS_PLATFORM_EXIT_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: MBEDTLS_PLATFORM_FPRINTF_ALT
+depends_on:MBEDTLS_PLATFORM_FPRINTF_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: !MBEDTLS_PLATFORM_FPRINTF_ALT
+depends_on:!MBEDTLS_PLATFORM_FPRINTF_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: MBEDTLS_PLATFORM_MEMORY
+depends_on:MBEDTLS_PLATFORM_MEMORY:MBEDTLS_PLATFORM_C
+pass:
+
+Config: !MBEDTLS_PLATFORM_MEMORY
+depends_on:!MBEDTLS_PLATFORM_MEMORY:MBEDTLS_PLATFORM_C
+pass:
+
+Config: MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
+depends_on:MBEDTLS_PLATFORM_NO_STD_FUNCTIONS:MBEDTLS_PLATFORM_C
+pass:
+
+Config: !MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
+depends_on:!MBEDTLS_PLATFORM_NO_STD_FUNCTIONS:MBEDTLS_PLATFORM_C
+pass:
+
+Config: MBEDTLS_PLATFORM_NV_SEED_ALT
+depends_on:MBEDTLS_PLATFORM_NV_SEED_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: !MBEDTLS_PLATFORM_NV_SEED_ALT
+depends_on:!MBEDTLS_PLATFORM_NV_SEED_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: MBEDTLS_PLATFORM_PRINTF_ALT
+depends_on:MBEDTLS_PLATFORM_PRINTF_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: !MBEDTLS_PLATFORM_PRINTF_ALT
+depends_on:!MBEDTLS_PLATFORM_PRINTF_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: MBEDTLS_PLATFORM_SNPRINTF_ALT
+depends_on:MBEDTLS_PLATFORM_SNPRINTF_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: !MBEDTLS_PLATFORM_SNPRINTF_ALT
+depends_on:!MBEDTLS_PLATFORM_SNPRINTF_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: MBEDTLS_PLATFORM_TIME_ALT
+depends_on:MBEDTLS_PLATFORM_TIME_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: !MBEDTLS_PLATFORM_TIME_ALT
+depends_on:!MBEDTLS_PLATFORM_TIME_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: MBEDTLS_PLATFORM_VSNPRINTF_ALT
+depends_on:MBEDTLS_PLATFORM_VSNPRINTF_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: !MBEDTLS_PLATFORM_VSNPRINTF_ALT
+depends_on:!MBEDTLS_PLATFORM_VSNPRINTF_ALT:MBEDTLS_PLATFORM_C
+pass:
+
+Config: MBEDTLS_POLY1305_C
+depends_on:MBEDTLS_POLY1305_C
+pass:
+
+Config: !MBEDTLS_POLY1305_C
+depends_on:!MBEDTLS_POLY1305_C
+pass:
+
+Config: MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
+depends_on:MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: !MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
+depends_on:!MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
+depends_on:MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: !MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
+depends_on:!MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: MBEDTLS_PSA_CRYPTO_C
+depends_on:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: !MBEDTLS_PSA_CRYPTO_C
+depends_on:!MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: MBEDTLS_PSA_CRYPTO_CLIENT
+depends_on:MBEDTLS_PSA_CRYPTO_CLIENT:!MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: !MBEDTLS_PSA_CRYPTO_CLIENT
+depends_on:!MBEDTLS_PSA_CRYPTO_CLIENT:!MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: MBEDTLS_PSA_CRYPTO_CONFIG
+depends_on:MBEDTLS_PSA_CRYPTO_CONFIG:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: !MBEDTLS_PSA_CRYPTO_CONFIG
+depends_on:!MBEDTLS_PSA_CRYPTO_CONFIG:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: MBEDTLS_PSA_CRYPTO_DRIVERS
+depends_on:MBEDTLS_PSA_CRYPTO_DRIVERS:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: !MBEDTLS_PSA_CRYPTO_DRIVERS
+depends_on:!MBEDTLS_PSA_CRYPTO_DRIVERS:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+depends_on:MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: !MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+depends_on:!MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
+depends_on:MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: !MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
+depends_on:!MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: MBEDTLS_PSA_CRYPTO_SE_C
+depends_on:MBEDTLS_PSA_CRYPTO_SE_C
+pass:
+
+Config: !MBEDTLS_PSA_CRYPTO_SE_C
+depends_on:!MBEDTLS_PSA_CRYPTO_SE_C
+pass:
+
+Config: MBEDTLS_PSA_CRYPTO_SPM
+depends_on:MBEDTLS_PSA_CRYPTO_SPM:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: !MBEDTLS_PSA_CRYPTO_SPM
+depends_on:!MBEDTLS_PSA_CRYPTO_SPM:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: MBEDTLS_PSA_CRYPTO_STORAGE_C
+depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C
+pass:
+
+Config: !MBEDTLS_PSA_CRYPTO_STORAGE_C
+depends_on:!MBEDTLS_PSA_CRYPTO_STORAGE_C
+pass:
+
+Config: MBEDTLS_PSA_INJECT_ENTROPY
+depends_on:MBEDTLS_PSA_INJECT_ENTROPY:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: !MBEDTLS_PSA_INJECT_ENTROPY
+depends_on:!MBEDTLS_PSA_INJECT_ENTROPY:MBEDTLS_PSA_CRYPTO_C
+pass:
+
+Config: MBEDTLS_PSA_ITS_FILE_C
+depends_on:MBEDTLS_PSA_ITS_FILE_C
+pass:
+
+Config: !MBEDTLS_PSA_ITS_FILE_C
+depends_on:!MBEDTLS_PSA_ITS_FILE_C
+pass:
+
+Config: MBEDTLS_REMOVE_3DES_CIPHERSUITES
+depends_on:MBEDTLS_REMOVE_3DES_CIPHERSUITES
+pass:
+
+Config: !MBEDTLS_REMOVE_3DES_CIPHERSUITES
+depends_on:!MBEDTLS_REMOVE_3DES_CIPHERSUITES
+pass:
+
+Config: MBEDTLS_REMOVE_ARC4_CIPHERSUITES
+depends_on:MBEDTLS_REMOVE_ARC4_CIPHERSUITES
+pass:
+
+Config: !MBEDTLS_REMOVE_ARC4_CIPHERSUITES
+depends_on:!MBEDTLS_REMOVE_ARC4_CIPHERSUITES
+pass:
+
+Config: MBEDTLS_RIPEMD160_C
+depends_on:MBEDTLS_RIPEMD160_C
+pass:
+
+Config: !MBEDTLS_RIPEMD160_C
+depends_on:!MBEDTLS_RIPEMD160_C
+pass:
+
+Config: MBEDTLS_RSA_C
+depends_on:MBEDTLS_RSA_C
+pass:
+
+Config: !MBEDTLS_RSA_C
+depends_on:!MBEDTLS_RSA_C
+pass:
+
+Config: MBEDTLS_RSA_NO_CRT
+depends_on:MBEDTLS_RSA_NO_CRT:MBEDTLS_RSA_C
+pass:
+
+Config: !MBEDTLS_RSA_NO_CRT
+depends_on:!MBEDTLS_RSA_NO_CRT:MBEDTLS_RSA_C
+pass:
+
+Config: MBEDTLS_SELF_TEST
+depends_on:MBEDTLS_SELF_TEST
+pass:
+
+Config: !MBEDTLS_SELF_TEST
+depends_on:!MBEDTLS_SELF_TEST
+pass:
+
+Config: MBEDTLS_SHA1_C
+depends_on:MBEDTLS_SHA1_C
+pass:
+
+Config: !MBEDTLS_SHA1_C
+depends_on:!MBEDTLS_SHA1_C
+pass:
+
+Config: MBEDTLS_SHA256_C
+depends_on:MBEDTLS_SHA256_C
+pass:
+
+Config: !MBEDTLS_SHA256_C
+depends_on:!MBEDTLS_SHA256_C
+pass:
+
+Config: MBEDTLS_SHA256_SMALLER
+depends_on:MBEDTLS_SHA256_SMALLER:MBEDTLS_SHA256_C
+pass:
+
+Config: !MBEDTLS_SHA256_SMALLER
+depends_on:!MBEDTLS_SHA256_SMALLER:MBEDTLS_SHA256_C
+pass:
+
+Config: MBEDTLS_SHA512_C
+depends_on:MBEDTLS_SHA512_C
+pass:
+
+Config: !MBEDTLS_SHA512_C
+depends_on:!MBEDTLS_SHA512_C
+pass:
+
+Config: MBEDTLS_SHA512_NO_SHA384
+depends_on:MBEDTLS_SHA512_NO_SHA384:MBEDTLS_SHA512_C
+pass:
+
+Config: !MBEDTLS_SHA512_NO_SHA384
+depends_on:!MBEDTLS_SHA512_NO_SHA384:MBEDTLS_SHA512_C
+pass:
+
+Config: MBEDTLS_SHA512_SMALLER
+depends_on:MBEDTLS_SHA512_SMALLER:MBEDTLS_SHA512_C
+pass:
+
+Config: !MBEDTLS_SHA512_SMALLER
+depends_on:!MBEDTLS_SHA512_SMALLER:MBEDTLS_SHA512_C
+pass:
+
+Config: MBEDTLS_SSL_ALL_ALERT_MESSAGES
+depends_on:MBEDTLS_SSL_ALL_ALERT_MESSAGES:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_ALL_ALERT_MESSAGES
+depends_on:!MBEDTLS_SSL_ALL_ALERT_MESSAGES:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_ALPN
+depends_on:MBEDTLS_SSL_ALPN:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_ALPN
+depends_on:!MBEDTLS_SSL_ALPN:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_ASYNC_PRIVATE
+depends_on:MBEDTLS_SSL_ASYNC_PRIVATE:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_ASYNC_PRIVATE
+depends_on:!MBEDTLS_SSL_ASYNC_PRIVATE:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_CACHE_C
+depends_on:MBEDTLS_SSL_CACHE_C
+pass:
+
+Config: !MBEDTLS_SSL_CACHE_C
+depends_on:!MBEDTLS_SSL_CACHE_C
+pass:
+
+Config: MBEDTLS_SSL_CBC_RECORD_SPLITTING
+depends_on:MBEDTLS_SSL_CBC_RECORD_SPLITTING:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_CBC_RECORD_SPLITTING
+depends_on:!MBEDTLS_SSL_CBC_RECORD_SPLITTING:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_CLI_C
+depends_on:MBEDTLS_SSL_CLI_C
+pass:
+
+Config: !MBEDTLS_SSL_CLI_C
+depends_on:!MBEDTLS_SSL_CLI_C
+pass:
+
+Config: MBEDTLS_SSL_CONTEXT_SERIALIZATION
+depends_on:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_CONTEXT_SERIALIZATION
+depends_on:!MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_COOKIE_C
+depends_on:MBEDTLS_SSL_COOKIE_C
+pass:
+
+Config: !MBEDTLS_SSL_COOKIE_C
+depends_on:!MBEDTLS_SSL_COOKIE_C
+pass:
+
+Config: MBEDTLS_SSL_DEBUG_ALL
+depends_on:MBEDTLS_SSL_DEBUG_ALL:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_DEBUG_ALL
+depends_on:!MBEDTLS_SSL_DEBUG_ALL:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_DTLS_ANTI_REPLAY
+depends_on:MBEDTLS_SSL_DTLS_ANTI_REPLAY:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: !MBEDTLS_SSL_DTLS_ANTI_REPLAY
+depends_on:!MBEDTLS_SSL_DTLS_ANTI_REPLAY:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: MBEDTLS_SSL_DTLS_BADMAC_LIMIT
+depends_on:MBEDTLS_SSL_DTLS_BADMAC_LIMIT:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: !MBEDTLS_SSL_DTLS_BADMAC_LIMIT
+depends_on:!MBEDTLS_SSL_DTLS_BADMAC_LIMIT:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
+depends_on:MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: !MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
+depends_on:!MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: MBEDTLS_SSL_DTLS_CONNECTION_ID
+depends_on:MBEDTLS_SSL_DTLS_CONNECTION_ID:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: !MBEDTLS_SSL_DTLS_CONNECTION_ID
+depends_on:!MBEDTLS_SSL_DTLS_CONNECTION_ID:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: MBEDTLS_SSL_DTLS_HELLO_VERIFY
+depends_on:MBEDTLS_SSL_DTLS_HELLO_VERIFY:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: !MBEDTLS_SSL_DTLS_HELLO_VERIFY
+depends_on:!MBEDTLS_SSL_DTLS_HELLO_VERIFY:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: MBEDTLS_SSL_DTLS_SRTP
+depends_on:MBEDTLS_SSL_DTLS_SRTP:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: !MBEDTLS_SSL_DTLS_SRTP
+depends_on:!MBEDTLS_SSL_DTLS_SRTP:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS
+pass:
+
+Config: MBEDTLS_SSL_ENCRYPT_THEN_MAC
+depends_on:MBEDTLS_SSL_ENCRYPT_THEN_MAC:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_ENCRYPT_THEN_MAC
+depends_on:!MBEDTLS_SSL_ENCRYPT_THEN_MAC:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_EXPORT_KEYS
+depends_on:MBEDTLS_SSL_EXPORT_KEYS:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_EXPORT_KEYS
+depends_on:!MBEDTLS_SSL_EXPORT_KEYS:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_EXTENDED_MASTER_SECRET
+depends_on:MBEDTLS_SSL_EXTENDED_MASTER_SECRET:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_EXTENDED_MASTER_SECRET
+depends_on:!MBEDTLS_SSL_EXTENDED_MASTER_SECRET:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_FALLBACK_SCSV
+depends_on:MBEDTLS_SSL_FALLBACK_SCSV:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_FALLBACK_SCSV
+depends_on:!MBEDTLS_SSL_FALLBACK_SCSV:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_HW_RECORD_ACCEL
+depends_on:MBEDTLS_SSL_HW_RECORD_ACCEL:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_HW_RECORD_ACCEL
+depends_on:!MBEDTLS_SSL_HW_RECORD_ACCEL:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
+depends_on:MBEDTLS_SSL_KEEP_PEER_CERTIFICATE:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
+depends_on:!MBEDTLS_SSL_KEEP_PEER_CERTIFICATE:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
+depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
+depends_on:!MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_PROTO_DTLS
+depends_on:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_PROTO_DTLS
+depends_on:!MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_PROTO_SSL3
+depends_on:MBEDTLS_SSL_PROTO_SSL3:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_PROTO_SSL3
+depends_on:!MBEDTLS_SSL_PROTO_SSL3:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_PROTO_TLS1
+depends_on:MBEDTLS_SSL_PROTO_TLS1:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_PROTO_TLS1
+depends_on:!MBEDTLS_SSL_PROTO_TLS1:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_PROTO_TLS1_1
+depends_on:MBEDTLS_SSL_PROTO_TLS1_1:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_PROTO_TLS1_1
+depends_on:!MBEDTLS_SSL_PROTO_TLS1_1:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_PROTO_TLS1_2
+depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_PROTO_TLS1_2
+depends_on:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL
+depends_on:MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL
+depends_on:!MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_RECORD_CHECKING
+depends_on:MBEDTLS_SSL_RECORD_CHECKING:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_RECORD_CHECKING
+depends_on:!MBEDTLS_SSL_RECORD_CHECKING:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_RENEGOTIATION
+depends_on:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_RENEGOTIATION
+depends_on:!MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_SERVER_NAME_INDICATION
+depends_on:MBEDTLS_SSL_SERVER_NAME_INDICATION:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_SERVER_NAME_INDICATION
+depends_on:!MBEDTLS_SSL_SERVER_NAME_INDICATION:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_SESSION_TICKETS
+depends_on:MBEDTLS_SSL_SESSION_TICKETS:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_SESSION_TICKETS
+depends_on:!MBEDTLS_SSL_SESSION_TICKETS:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_SRV_C
+depends_on:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_SRV_C
+depends_on:!MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE
+depends_on:MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE
+depends_on:!MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
+depends_on:MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
+depends_on:!MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_TICKET_C
+depends_on:MBEDTLS_SSL_TICKET_C
+pass:
+
+Config: !MBEDTLS_SSL_TICKET_C
+depends_on:!MBEDTLS_SSL_TICKET_C
+pass:
+
+Config: MBEDTLS_SSL_TLS_C
+depends_on:MBEDTLS_SSL_TLS_C
+pass:
+
+Config: !MBEDTLS_SSL_TLS_C
+depends_on:!MBEDTLS_SSL_TLS_C
+pass:
+
+Config: MBEDTLS_SSL_TRUNCATED_HMAC
+depends_on:MBEDTLS_SSL_TRUNCATED_HMAC:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_TRUNCATED_HMAC
+depends_on:!MBEDTLS_SSL_TRUNCATED_HMAC:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT
+depends_on:MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT
+depends_on:!MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
+depends_on:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: !MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
+depends_on:!MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C
+pass:
+
+Config: MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
+depends_on:MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
+pass:
+
+Config: !MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
+depends_on:!MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
+pass:
+
+Config: MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
+depends_on:MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
+pass:
+
+Config: !MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
+depends_on:!MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
+pass:
+
+Config: MBEDTLS_TEST_HOOKS
+depends_on:MBEDTLS_TEST_HOOKS
+pass:
+
+Config: !MBEDTLS_TEST_HOOKS
+depends_on:!MBEDTLS_TEST_HOOKS
+pass:
+
+Config: MBEDTLS_TEST_NULL_ENTROPY
+depends_on:MBEDTLS_TEST_NULL_ENTROPY
+pass:
+
+Config: !MBEDTLS_TEST_NULL_ENTROPY
+depends_on:!MBEDTLS_TEST_NULL_ENTROPY
+pass:
+
+Config: MBEDTLS_THREADING_C
+depends_on:MBEDTLS_THREADING_C
+pass:
+
+Config: !MBEDTLS_THREADING_C
+depends_on:!MBEDTLS_THREADING_C
+pass:
+
+Config: MBEDTLS_THREADING_PTHREAD
+depends_on:MBEDTLS_THREADING_PTHREAD:MBEDTLS_THREADING_C
+pass:
+
+Config: !MBEDTLS_THREADING_PTHREAD
+depends_on:!MBEDTLS_THREADING_PTHREAD:MBEDTLS_THREADING_C
+pass:
+
+Config: MBEDTLS_TIMING_C
+depends_on:MBEDTLS_TIMING_C
+pass:
+
+Config: !MBEDTLS_TIMING_C
+depends_on:!MBEDTLS_TIMING_C
+pass:
+
+Config: MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_KEY_EXCHANGE
+depends_on:MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_KEY_EXCHANGE
+pass:
+
+Config: !MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_KEY_EXCHANGE
+depends_on:!MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_KEY_EXCHANGE
+pass:
+
+Config: MBEDTLS_USE_PSA_CRYPTO
+depends_on:MBEDTLS_USE_PSA_CRYPTO
+pass:
+
+Config: !MBEDTLS_USE_PSA_CRYPTO
+depends_on:!MBEDTLS_USE_PSA_CRYPTO
+pass:
+
+Config: MBEDTLS_VERSION_C
+depends_on:MBEDTLS_VERSION_C
+pass:
+
+Config: !MBEDTLS_VERSION_C
+depends_on:!MBEDTLS_VERSION_C
+pass:
+
+Config: MBEDTLS_VERSION_FEATURES
+depends_on:MBEDTLS_VERSION_FEATURES:MBEDTLS_VERSION_C
+pass:
+
+Config: !MBEDTLS_VERSION_FEATURES
+depends_on:!MBEDTLS_VERSION_FEATURES:MBEDTLS_VERSION_C
+pass:
+
+Config: MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
+depends_on:MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
+pass:
+
+Config: !MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
+depends_on:!MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
+pass:
+
+Config: MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
+depends_on:MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
+pass:
+
+Config: !MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
+depends_on:!MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
+pass:
+
+Config: MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
+depends_on:MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
+pass:
+
+Config: !MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
+depends_on:!MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
+pass:
+
+Config: MBEDTLS_X509_CHECK_KEY_USAGE
+depends_on:MBEDTLS_X509_CHECK_KEY_USAGE
+pass:
+
+Config: !MBEDTLS_X509_CHECK_KEY_USAGE
+depends_on:!MBEDTLS_X509_CHECK_KEY_USAGE
+pass:
+
+Config: MBEDTLS_X509_CREATE_C
+depends_on:MBEDTLS_X509_CREATE_C
+pass:
+
+Config: !MBEDTLS_X509_CREATE_C
+depends_on:!MBEDTLS_X509_CREATE_C
+pass:
+
+Config: MBEDTLS_X509_CRL_PARSE_C
+depends_on:MBEDTLS_X509_CRL_PARSE_C
+pass:
+
+Config: !MBEDTLS_X509_CRL_PARSE_C
+depends_on:!MBEDTLS_X509_CRL_PARSE_C
+pass:
+
+Config: MBEDTLS_X509_CRT_PARSE_C
+depends_on:MBEDTLS_X509_CRT_PARSE_C
+pass:
+
+Config: !MBEDTLS_X509_CRT_PARSE_C
+depends_on:!MBEDTLS_X509_CRT_PARSE_C
+pass:
+
+Config: MBEDTLS_X509_CRT_WRITE_C
+depends_on:MBEDTLS_X509_CRT_WRITE_C
+pass:
+
+Config: !MBEDTLS_X509_CRT_WRITE_C
+depends_on:!MBEDTLS_X509_CRT_WRITE_C
+pass:
+
+Config: MBEDTLS_X509_CSR_PARSE_C
+depends_on:MBEDTLS_X509_CSR_PARSE_C
+pass:
+
+Config: !MBEDTLS_X509_CSR_PARSE_C
+depends_on:!MBEDTLS_X509_CSR_PARSE_C
+pass:
+
+Config: MBEDTLS_X509_CSR_WRITE_C
+depends_on:MBEDTLS_X509_CSR_WRITE_C
+pass:
+
+Config: !MBEDTLS_X509_CSR_WRITE_C
+depends_on:!MBEDTLS_X509_CSR_WRITE_C
+pass:
+
+Config: MBEDTLS_X509_RSASSA_PSS_SUPPORT
+depends_on:MBEDTLS_X509_RSASSA_PSS_SUPPORT
+pass:
+
+Config: !MBEDTLS_X509_RSASSA_PSS_SUPPORT
+depends_on:!MBEDTLS_X509_RSASSA_PSS_SUPPORT
+pass:
+
+Config: MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
+depends_on:MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
+pass:
+
+Config: !MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
+depends_on:!MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
+pass:
+
+Config: MBEDTLS_X509_USE_C
+depends_on:MBEDTLS_X509_USE_C
+pass:
+
+Config: !MBEDTLS_X509_USE_C
+depends_on:!MBEDTLS_X509_USE_C
+pass:
+
+Config: MBEDTLS_XTEA_C
+depends_on:MBEDTLS_XTEA_C
+pass:
+
+Config: !MBEDTLS_XTEA_C
+depends_on:!MBEDTLS_XTEA_C
+pass:
+
+Config: MBEDTLS_ZLIB_SUPPORT
+depends_on:MBEDTLS_ZLIB_SUPPORT
+pass:
+
+Config: !MBEDTLS_ZLIB_SUPPORT
+depends_on:!MBEDTLS_ZLIB_SUPPORT
+pass:
+
+# End of automatically generated file.
diff --git a/tests/suites/test_suite_config.psa_boolean.data b/tests/suites/test_suite_config.psa_boolean.data
new file mode 100644
index 0000000..e297b7b
--- /dev/null
+++ b/tests/suites/test_suite_config.psa_boolean.data
@@ -0,0 +1,475 @@
+# Automatically generated by generate_config_tests.py. Do not edit!
+
+Config: PSA_WANT_ALG_CBC_MAC
+depends_on:PSA_WANT_ALG_CBC_MAC
+pass:
+
+Config: !PSA_WANT_ALG_CBC_MAC
+depends_on:!PSA_WANT_ALG_CBC_MAC
+pass:
+
+Config: PSA_WANT_ALG_CBC_NO_PADDING
+depends_on:PSA_WANT_ALG_CBC_NO_PADDING
+pass:
+
+Config: !PSA_WANT_ALG_CBC_NO_PADDING
+depends_on:!PSA_WANT_ALG_CBC_NO_PADDING
+pass:
+
+Config: PSA_WANT_ALG_CBC_PKCS7
+depends_on:PSA_WANT_ALG_CBC_PKCS7
+pass:
+
+Config: !PSA_WANT_ALG_CBC_PKCS7
+depends_on:!PSA_WANT_ALG_CBC_PKCS7
+pass:
+
+Config: PSA_WANT_ALG_CCM
+depends_on:PSA_WANT_ALG_CCM
+pass:
+
+Config: !PSA_WANT_ALG_CCM
+depends_on:!PSA_WANT_ALG_CCM
+pass:
+
+Config: PSA_WANT_ALG_CFB
+depends_on:PSA_WANT_ALG_CFB
+pass:
+
+Config: !PSA_WANT_ALG_CFB
+depends_on:!PSA_WANT_ALG_CFB
+pass:
+
+Config: PSA_WANT_ALG_CHACHA20_POLY1305
+depends_on:PSA_WANT_ALG_CHACHA20_POLY1305
+pass:
+
+Config: !PSA_WANT_ALG_CHACHA20_POLY1305
+depends_on:!PSA_WANT_ALG_CHACHA20_POLY1305
+pass:
+
+Config: PSA_WANT_ALG_CMAC
+depends_on:PSA_WANT_ALG_CMAC
+pass:
+
+Config: !PSA_WANT_ALG_CMAC
+depends_on:!PSA_WANT_ALG_CMAC
+pass:
+
+Config: PSA_WANT_ALG_CTR
+depends_on:PSA_WANT_ALG_CTR
+pass:
+
+Config: !PSA_WANT_ALG_CTR
+depends_on:!PSA_WANT_ALG_CTR
+pass:
+
+Config: PSA_WANT_ALG_DETERMINISTIC_ECDSA
+depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA
+pass:
+
+Config: !PSA_WANT_ALG_DETERMINISTIC_ECDSA
+depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA
+pass:
+
+Config: PSA_WANT_ALG_ECB_NO_PADDING
+depends_on:PSA_WANT_ALG_ECB_NO_PADDING
+pass:
+
+Config: !PSA_WANT_ALG_ECB_NO_PADDING
+depends_on:!PSA_WANT_ALG_ECB_NO_PADDING
+pass:
+
+Config: PSA_WANT_ALG_ECDH
+depends_on:PSA_WANT_ALG_ECDH
+pass:
+
+Config: !PSA_WANT_ALG_ECDH
+depends_on:!PSA_WANT_ALG_ECDH
+pass:
+
+Config: PSA_WANT_ALG_ECDSA
+depends_on:PSA_WANT_ALG_ECDSA
+pass:
+
+Config: !PSA_WANT_ALG_ECDSA
+depends_on:!PSA_WANT_ALG_ECDSA
+pass:
+
+Config: PSA_WANT_ALG_GCM
+depends_on:PSA_WANT_ALG_GCM
+pass:
+
+Config: !PSA_WANT_ALG_GCM
+depends_on:!PSA_WANT_ALG_GCM
+pass:
+
+Config: PSA_WANT_ALG_HKDF
+depends_on:PSA_WANT_ALG_HKDF
+pass:
+
+Config: !PSA_WANT_ALG_HKDF
+depends_on:!PSA_WANT_ALG_HKDF
+pass:
+
+Config: PSA_WANT_ALG_HMAC
+depends_on:PSA_WANT_ALG_HMAC
+pass:
+
+Config: !PSA_WANT_ALG_HMAC
+depends_on:!PSA_WANT_ALG_HMAC
+pass:
+
+Config: PSA_WANT_ALG_MD2
+depends_on:PSA_WANT_ALG_MD2
+pass:
+
+Config: !PSA_WANT_ALG_MD2
+depends_on:!PSA_WANT_ALG_MD2
+pass:
+
+Config: PSA_WANT_ALG_MD4
+depends_on:PSA_WANT_ALG_MD4
+pass:
+
+Config: !PSA_WANT_ALG_MD4
+depends_on:!PSA_WANT_ALG_MD4
+pass:
+
+Config: PSA_WANT_ALG_MD5
+depends_on:PSA_WANT_ALG_MD5
+pass:
+
+Config: !PSA_WANT_ALG_MD5
+depends_on:!PSA_WANT_ALG_MD5
+pass:
+
+Config: PSA_WANT_ALG_OFB
+depends_on:PSA_WANT_ALG_OFB
+pass:
+
+Config: !PSA_WANT_ALG_OFB
+depends_on:!PSA_WANT_ALG_OFB
+pass:
+
+Config: PSA_WANT_ALG_RIPEMD160
+depends_on:PSA_WANT_ALG_RIPEMD160
+pass:
+
+Config: !PSA_WANT_ALG_RIPEMD160
+depends_on:!PSA_WANT_ALG_RIPEMD160
+pass:
+
+Config: PSA_WANT_ALG_RSA_OAEP
+depends_on:PSA_WANT_ALG_RSA_OAEP
+pass:
+
+Config: !PSA_WANT_ALG_RSA_OAEP
+depends_on:!PSA_WANT_ALG_RSA_OAEP
+pass:
+
+Config: PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
+depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
+pass:
+
+Config: !PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
+depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
+pass:
+
+Config: PSA_WANT_ALG_RSA_PKCS1V15_SIGN
+depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN
+pass:
+
+Config: !PSA_WANT_ALG_RSA_PKCS1V15_SIGN
+depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN
+pass:
+
+Config: PSA_WANT_ALG_RSA_PSS
+depends_on:PSA_WANT_ALG_RSA_PSS
+pass:
+
+Config: !PSA_WANT_ALG_RSA_PSS
+depends_on:!PSA_WANT_ALG_RSA_PSS
+pass:
+
+Config: PSA_WANT_ALG_SHA_1
+depends_on:PSA_WANT_ALG_SHA_1
+pass:
+
+Config: !PSA_WANT_ALG_SHA_1
+depends_on:!PSA_WANT_ALG_SHA_1
+pass:
+
+Config: PSA_WANT_ALG_SHA_224
+depends_on:PSA_WANT_ALG_SHA_224
+pass:
+
+Config: !PSA_WANT_ALG_SHA_224
+depends_on:!PSA_WANT_ALG_SHA_224
+pass:
+
+Config: PSA_WANT_ALG_SHA_256
+depends_on:PSA_WANT_ALG_SHA_256
+pass:
+
+Config: !PSA_WANT_ALG_SHA_256
+depends_on:!PSA_WANT_ALG_SHA_256
+pass:
+
+Config: PSA_WANT_ALG_SHA_384
+depends_on:PSA_WANT_ALG_SHA_384
+pass:
+
+Config: !PSA_WANT_ALG_SHA_384
+depends_on:!PSA_WANT_ALG_SHA_384
+pass:
+
+Config: PSA_WANT_ALG_SHA_512
+depends_on:PSA_WANT_ALG_SHA_512
+pass:
+
+Config: !PSA_WANT_ALG_SHA_512
+depends_on:!PSA_WANT_ALG_SHA_512
+pass:
+
+Config: PSA_WANT_ALG_STREAM_CIPHER
+depends_on:PSA_WANT_ALG_STREAM_CIPHER
+pass:
+
+Config: !PSA_WANT_ALG_STREAM_CIPHER
+depends_on:!PSA_WANT_ALG_STREAM_CIPHER
+pass:
+
+Config: PSA_WANT_ALG_TLS12_PRF
+depends_on:PSA_WANT_ALG_TLS12_PRF
+pass:
+
+Config: !PSA_WANT_ALG_TLS12_PRF
+depends_on:!PSA_WANT_ALG_TLS12_PRF
+pass:
+
+Config: PSA_WANT_ALG_TLS12_PSK_TO_MS
+depends_on:PSA_WANT_ALG_TLS12_PSK_TO_MS
+pass:
+
+Config: !PSA_WANT_ALG_TLS12_PSK_TO_MS
+depends_on:!PSA_WANT_ALG_TLS12_PSK_TO_MS
+pass:
+
+Config: PSA_WANT_ALG_XTS
+depends_on:PSA_WANT_ALG_XTS
+pass:
+
+Config: !PSA_WANT_ALG_XTS
+depends_on:!PSA_WANT_ALG_XTS
+pass:
+
+Config: PSA_WANT_ECC_BRAINPOOL_P_R1_256
+depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256
+pass:
+
+Config: !PSA_WANT_ECC_BRAINPOOL_P_R1_256
+depends_on:!PSA_WANT_ECC_BRAINPOOL_P_R1_256
+pass:
+
+Config: PSA_WANT_ECC_BRAINPOOL_P_R1_384
+depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384
+pass:
+
+Config: !PSA_WANT_ECC_BRAINPOOL_P_R1_384
+depends_on:!PSA_WANT_ECC_BRAINPOOL_P_R1_384
+pass:
+
+Config: PSA_WANT_ECC_BRAINPOOL_P_R1_512
+depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512
+pass:
+
+Config: !PSA_WANT_ECC_BRAINPOOL_P_R1_512
+depends_on:!PSA_WANT_ECC_BRAINPOOL_P_R1_512
+pass:
+
+Config: PSA_WANT_ECC_MONTGOMERY_255
+depends_on:PSA_WANT_ECC_MONTGOMERY_255
+pass:
+
+Config: !PSA_WANT_ECC_MONTGOMERY_255
+depends_on:!PSA_WANT_ECC_MONTGOMERY_255
+pass:
+
+Config: PSA_WANT_ECC_MONTGOMERY_448
+depends_on:PSA_WANT_ECC_MONTGOMERY_448
+pass:
+
+Config: !PSA_WANT_ECC_MONTGOMERY_448
+depends_on:!PSA_WANT_ECC_MONTGOMERY_448
+pass:
+
+Config: PSA_WANT_ECC_SECP_K1_192
+depends_on:PSA_WANT_ECC_SECP_K1_192
+pass:
+
+Config: !PSA_WANT_ECC_SECP_K1_192
+depends_on:!PSA_WANT_ECC_SECP_K1_192
+pass:
+
+Config: PSA_WANT_ECC_SECP_K1_224
+depends_on:PSA_WANT_ECC_SECP_K1_224
+pass:
+
+Config: !PSA_WANT_ECC_SECP_K1_224
+depends_on:!PSA_WANT_ECC_SECP_K1_224
+pass:
+
+Config: PSA_WANT_ECC_SECP_K1_256
+depends_on:PSA_WANT_ECC_SECP_K1_256
+pass:
+
+Config: !PSA_WANT_ECC_SECP_K1_256
+depends_on:!PSA_WANT_ECC_SECP_K1_256
+pass:
+
+Config: PSA_WANT_ECC_SECP_R1_192
+depends_on:PSA_WANT_ECC_SECP_R1_192
+pass:
+
+Config: !PSA_WANT_ECC_SECP_R1_192
+depends_on:!PSA_WANT_ECC_SECP_R1_192
+pass:
+
+Config: PSA_WANT_ECC_SECP_R1_224
+depends_on:PSA_WANT_ECC_SECP_R1_224
+pass:
+
+Config: !PSA_WANT_ECC_SECP_R1_224
+depends_on:!PSA_WANT_ECC_SECP_R1_224
+pass:
+
+Config: PSA_WANT_ECC_SECP_R1_256
+depends_on:PSA_WANT_ECC_SECP_R1_256
+pass:
+
+Config: !PSA_WANT_ECC_SECP_R1_256
+depends_on:!PSA_WANT_ECC_SECP_R1_256
+pass:
+
+Config: PSA_WANT_ECC_SECP_R1_384
+depends_on:PSA_WANT_ECC_SECP_R1_384
+pass:
+
+Config: !PSA_WANT_ECC_SECP_R1_384
+depends_on:!PSA_WANT_ECC_SECP_R1_384
+pass:
+
+Config: PSA_WANT_ECC_SECP_R1_521
+depends_on:PSA_WANT_ECC_SECP_R1_521
+pass:
+
+Config: !PSA_WANT_ECC_SECP_R1_521
+depends_on:!PSA_WANT_ECC_SECP_R1_521
+pass:
+
+Config: PSA_WANT_KEY_TYPE_AES
+depends_on:PSA_WANT_KEY_TYPE_AES
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_AES
+depends_on:!PSA_WANT_KEY_TYPE_AES
+pass:
+
+Config: PSA_WANT_KEY_TYPE_ARC4
+depends_on:PSA_WANT_KEY_TYPE_ARC4
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_ARC4
+depends_on:!PSA_WANT_KEY_TYPE_ARC4
+pass:
+
+Config: PSA_WANT_KEY_TYPE_ARIA
+depends_on:PSA_WANT_KEY_TYPE_ARIA
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_ARIA
+depends_on:!PSA_WANT_KEY_TYPE_ARIA
+pass:
+
+Config: PSA_WANT_KEY_TYPE_CAMELLIA
+depends_on:PSA_WANT_KEY_TYPE_CAMELLIA
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_CAMELLIA
+depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA
+pass:
+
+Config: PSA_WANT_KEY_TYPE_CHACHA20
+depends_on:PSA_WANT_KEY_TYPE_CHACHA20
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_CHACHA20
+depends_on:!PSA_WANT_KEY_TYPE_CHACHA20
+pass:
+
+Config: PSA_WANT_KEY_TYPE_DERIVE
+depends_on:PSA_WANT_KEY_TYPE_DERIVE
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_DERIVE
+depends_on:!PSA_WANT_KEY_TYPE_DERIVE
+pass:
+
+Config: PSA_WANT_KEY_TYPE_DES
+depends_on:PSA_WANT_KEY_TYPE_DES
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_DES
+depends_on:!PSA_WANT_KEY_TYPE_DES
+pass:
+
+Config: PSA_WANT_KEY_TYPE_ECC_KEY_PAIR
+depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_ECC_KEY_PAIR
+depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR
+pass:
+
+Config: PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
+depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
+depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
+pass:
+
+Config: PSA_WANT_KEY_TYPE_HMAC
+depends_on:PSA_WANT_KEY_TYPE_HMAC
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_HMAC
+depends_on:!PSA_WANT_KEY_TYPE_HMAC
+pass:
+
+Config: PSA_WANT_KEY_TYPE_RAW_DATA
+depends_on:PSA_WANT_KEY_TYPE_RAW_DATA
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_RAW_DATA
+depends_on:!PSA_WANT_KEY_TYPE_RAW_DATA
+pass:
+
+Config: PSA_WANT_KEY_TYPE_RSA_KEY_PAIR
+depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_RSA_KEY_PAIR
+depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR
+pass:
+
+Config: PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
+depends_on:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
+pass:
+
+Config: !PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
+depends_on:!PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
+pass:
+
+# End of automatically generated file.
diff --git a/tests/suites/test_suite_config.psa_combinations.data b/tests/suites/test_suite_config.psa_combinations.data
new file mode 100644
index 0000000..1035af2
--- /dev/null
+++ b/tests/suites/test_suite_config.psa_combinations.data
@@ -0,0 +1,9 @@
+# Interesting combinations of PSA options
+
+Config: PSA_WANT_ALG_ECDSA without PSA_WANT_ALG_DETERMINISTIC_ECDSA
+depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_DETERMINISTIC_ECDSA
+pass:
+
+Config: PSA_WANT_ALG_DETERMINSTIC_ECDSA without PSA_WANT_ALG_ECDSA
+depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_ECDSA
+pass:
diff --git a/tests/suites/test_suite_config.tls_combinations.data b/tests/suites/test_suite_config.tls_combinations.data
new file mode 100644
index 0000000..2631d60
--- /dev/null
+++ b/tests/suites/test_suite_config.tls_combinations.data
@@ -0,0 +1,13 @@
+# Interesting combinations of TLS options
+
+Config: TLS 1.0 only
+depends_on:!MBEDTLS_SSL_PROTO_SSL3:MBEDTLS_SSL_PROTO_TLS1:!MBEDTLS_SSL_PROTO_TLS1_1:!MBEDTLS_SSL_PROTO_TLS1_2:!MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL
+pass:
+
+Config: TLS 1.1 only
+depends_on:!MBEDTLS_SSL_PROTO_SSL3:!MBEDTLS_SSL_PROTO_TLS1:MBEDTLS_SSL_PROTO_TLS1_1:!MBEDTLS_SSL_PROTO_TLS1_2:!MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL
+pass:
+
+Config: TLS 1.2 only
+depends_on:!MBEDTLS_SSL_PROTO_SSL3:!MBEDTLS_SSL_PROTO_TLS1:!MBEDTLS_SSL_PROTO_TLS1_1:MBEDTLS_SSL_PROTO_TLS1_2:!MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL
+pass: