From 41ad6601ebb48eed908825a53e080b7b97b2fee8 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 23 May 2024 15:03:43 +0200 Subject: [PATCH 01/16] Recognize that a double-inclusion guard is not a config setting Fix PSA_CRYPTO_CONFIG_H being treated as a configuration setting in include/psa/crypto_config.h. Signed-off-by: Gilles Peskine --- scripts/config.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/scripts/config.py b/scripts/config.py index 22bdb5e6d..766b5af9c 100755 --- a/scripts/config.py +++ b/scripts/config.py @@ -389,6 +389,7 @@ class ConfigFile(Config): 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 @@ class ConfigFile(Config): r'(?P(?:\((?:\w|\s|,)*\))?)' + r'(?P\s*)' + r'(?P.*)') + _ifndef_line_regexp = r'#ifndef (?P\w+)' _section_line_regexp = (r'\s*/?\*+\s*[\\@]name\s+SECTION:\s*' + r'(?P
.*)[ */]*') _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 @@ class ConfigFile(Config): 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 + From 14f91c9d892e48afc8d6204707a6b1e97d97cef1 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 23 May 2024 15:50:44 +0200 Subject: [PATCH 02/16] New test suite to report configuration options Add a test suite intended to report configuration options in the outcome file: we're only interested in SKIP vs PASS. Add a few test cases for some interesting combinations of options. The selection here is just for illustration purposes, more will be added later. A subsequent commit will automatically generate test cases for single options. Signed-off-by: Gilles Peskine --- .../test_suite_config.crypto_combinations.data | 9 +++++++++ tests/suites/test_suite_config.function | 14 ++++++++++++++ .../suites/test_suite_config.psa_combinations.data | 9 +++++++++ .../suites/test_suite_config.tls_combinations.data | 9 +++++++++ 4 files changed, 41 insertions(+) create mode 100644 tests/suites/test_suite_config.crypto_combinations.data create mode 100644 tests/suites/test_suite_config.function create mode 100644 tests/suites/test_suite_config.psa_combinations.data create mode 100644 tests/suites/test_suite_config.tls_combinations.data 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 000000000..d3287d266 --- /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 000000000..9e9dd0199 --- /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.psa_combinations.data b/tests/suites/test_suite_config.psa_combinations.data new file mode 100644 index 000000000..1035af248 --- /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 000000000..cbc57d6cd --- /dev/null +++ b/tests/suites/test_suite_config.tls_combinations.data @@ -0,0 +1,9 @@ +# Interesting combinations of TLS options + +Config: TLS 1.2 without TLS 1.3 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:!MBEDTLS_SSL_PROTO_TLS1_3 +pass: + +Config: TLS 1.3 without TLS 1.2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 +pass: From ae27ca9e0aed4c67b6ebd3eb884ca441e3852349 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 28 May 2024 18:54:55 +0200 Subject: [PATCH 03/16] Anchor relative paths Signed-off-by: Gilles Peskine --- tests/.gitignore | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/.gitignore b/tests/.gitignore index 4678d8d4e..a5c09a747 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/* From 693611e532fb556f86bd4dc69662e53caeee3cf3 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Jun 2024 19:32:22 +0200 Subject: [PATCH 04/16] Generate config test cases for single options Generate option-on and option-off cases for test_suite_config, for all boolean options (MBEDTLS_xxx and PSA_WANT_xxx, collected from the mbedtls and PSA config files). Signed-off-by: Gilles Peskine --- scripts/generate_config_tests.py | 96 ++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100755 scripts/generate_config_tests.py diff --git a/scripts/generate_config_tests.py b/scripts/generate_config_tests.py new file mode 100755 index 000000000..e78ff35c9 --- /dev/null +++ b/scripts/generate_config_tests.py @@ -0,0 +1,96 @@ +#!/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 project_scripts # pylint: disable=unused-import +import config +from mbedtls_framework import test_case +from mbedtls_framework import test_data_generation + + +def single_option_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 option 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 + + +def conditions_for_option(cfg: config.Config, + setting: config.Setting + ) -> Iterator[Tuple[List[str], str]]: + """Enumerate the conditions under which to test the given setting. + + * cfg: all configuration options. + * 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 option is enabled, generate + a one-element stream with that other option as an extra dependency. + * If the setting is known to interact with some other option, generate + a stream with one element where this option 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 + yield [], '' + + +def enumerate_boolean_option_cases(cfg: config.Config + ) -> Iterable[test_case.TestCase]: + """Emit test cases for all boolean options.""" + 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_option(cfg, setting): + yield single_option_case(setting, when_on, deps, note) + + + +class ConfigTestGenerator(test_data_generation.TestGenerator): + """Generate test cases for configuration reporting.""" + + def __init__(self, options): + self.mbedtls_config = config.ConfigFile() + self.targets['test_suite_config.mbedtls_boolean'] = \ + lambda: enumerate_boolean_option_cases(self.mbedtls_config) + self.psa_config = config.ConfigFile('include/psa/crypto_config.h') + self.targets['test_suite_config.psa_boolean'] = \ + lambda: enumerate_boolean_option_cases(self.psa_config) + super().__init__(options) + + +if __name__ == '__main__': + test_data_generation.main(sys.argv[1:], __doc__, ConfigTestGenerator) From c79ecea42bbaa000e4c7ae929f26e961e48482b1 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 23 May 2024 16:32:39 +0200 Subject: [PATCH 05/16] Detect sub-options When option A is only meaningful if option B is enabled, when enumerating single-option test cases, emit A:B and !A:B rather than A and !A. This way the "!A" case is actually meaningful. Signed-off-by: Gilles Peskine --- scripts/generate_config_tests.py | 61 ++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/scripts/generate_config_tests.py b/scripts/generate_config_tests.py index e78ff35c9..d97adada9 100755 --- a/scripts/generate_config_tests.py +++ b/scripts/generate_config_tests.py @@ -40,6 +40,63 @@ def single_option_case(setting: config.Setting, when_on: bool, return tc +PSA_WANT_KEY_TYPE_KEY_PAIR_RE = \ + re.compile(r'(?PPSA_WANT_KEY_TYPE_(?P\w+)_KEY_PAIR_)(?P\w+)\Z') + +# If foo is an option that is only meaningful when bar is enabled, set +# SUPER_SETTINGS[foo]=bar. More generally, bar can be a colon-separated +# list of options, meaning that all the options must be enabled. Each option +# can be prefixed with '!' to negate it. This is the same syntax as a +# depends_on directive in test data. +# See also `find_super_option`. +SUPER_SETTINGS = { + 'MBEDTLS_AESCE_C': 'MBEDTLS_AES_C', + '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', +} + +def find_super_option(cfg: config.Config, + setting: config.Setting) -> Optional[str]: + """If setting is only meaningful when some option is enabled, return that option. + + The return value can be a colon-separated list of options, if the setting + is only meaningful when all of these options are enabled. Options 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 SUPER_SETTINGS: + return SUPER_SETTINGS[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' + if name.startswith('MBEDTLS_SSL_TLS1_3_') or \ + name == 'MBEDTLS_SSL_EARLY_DATA': + return 'MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_TLS1_3' + 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 m in re.finditer(r'_', name): + super_name = name[:m.start()] + '_C' + if cfg.known(super_name): + return super_name + m = re.match(PSA_WANT_KEY_TYPE_KEY_PAIR_RE, name) + if m and m.group('operation') != 'BASIC': + return m.group('prefix') + 'BASIC' + return None + def conditions_for_option(cfg: config.Config, setting: config.Setting ) -> Iterator[Tuple[List[str], str]]: @@ -63,6 +120,10 @@ def conditions_for_option(cfg: config.Config, if name.endswith('_ALT') and not config.is_seamless_alt(name): # We don't test alt implementations, except (most) platform alts return + super_setting = find_super_option(cfg, setting) + if super_setting: + yield [super_setting], '' + return yield [], '' From 556249e1343ea58d25d5b4c83f1ad27583402e9f Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 23 May 2024 19:37:20 +0200 Subject: [PATCH 06/16] Pacify mypy I had accidentally reused a variable name inside the same function. Python copes but mypy doesn't. Signed-off-by: Gilles Peskine --- scripts/generate_config_tests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/generate_config_tests.py b/scripts/generate_config_tests.py index d97adada9..074b0e9d0 100755 --- a/scripts/generate_config_tests.py +++ b/scripts/generate_config_tests.py @@ -88,11 +88,11 @@ def find_super_option(cfg: config.Config, 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 m in re.finditer(r'_', name): - super_name = name[:m.start()] + '_C' + for pos in re.finditer(r'_', name): + super_name = name[:pos.start()] + '_C' if cfg.known(super_name): return super_name - m = re.match(PSA_WANT_KEY_TYPE_KEY_PAIR_RE, name) + m = PSA_WANT_KEY_TYPE_KEY_PAIR_RE.match(name) if m and m.group('operation') != 'BASIC': return m.group('prefix') + 'BASIC' return None From c08d5bfda734b3379a9ceb45e9d7465d61bf6455 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 28 May 2024 19:18:31 +0200 Subject: [PATCH 07/16] Fix missing negation Signed-off-by: Gilles Peskine --- scripts/generate_config_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate_config_tests.py b/scripts/generate_config_tests.py index 074b0e9d0..8121d1b2d 100755 --- a/scripts/generate_config_tests.py +++ b/scripts/generate_config_tests.py @@ -58,7 +58,7 @@ SUPER_SETTINGS = { '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_CRYPTO_CLIENT': '!MBEDTLS_PSA_CRYPTO_C', 'MBEDTLS_PSA_INJECT_ENTROPY': 'MBEDTLS_PSA_CRYPTO_C', 'MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS': 'MBEDTLS_PSA_CRYPTO_C', } From f75c70bb8141ed28487c46ea333fb42876f9908e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 28 May 2024 19:18:46 +0200 Subject: [PATCH 08/16] Explain why we require TLS client and server simultaneously Signed-off-by: Gilles Peskine --- scripts/generate_config_tests.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/generate_config_tests.py b/scripts/generate_config_tests.py index 8121d1b2d..921c63522 100755 --- a/scripts/generate_config_tests.py +++ b/scripts/generate_config_tests.py @@ -81,6 +81,14 @@ def find_super_option(cfg: config.Config, 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 options, insist on having them once off and once on in + # a configuration where both client support and server support are + # enabled. The options 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_') or \ name == 'MBEDTLS_SSL_EARLY_DATA': return 'MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_TLS1_3' From 5454a8477209686a514cb1b1b734f6e29ae72780 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 29 May 2024 16:37:38 +0200 Subject: [PATCH 09/16] Terminology: consistently use "setting", not "option" The two were used interchangeably. Align on "setting", which is what config.py uses in its documentation. Signed-off-by: Gilles Peskine --- scripts/generate_config_tests.py | 62 ++++++++++++++++---------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/scripts/generate_config_tests.py b/scripts/generate_config_tests.py index 921c63522..3d6a520c4 100755 --- a/scripts/generate_config_tests.py +++ b/scripts/generate_config_tests.py @@ -15,9 +15,9 @@ from mbedtls_framework import test_case from mbedtls_framework import test_data_generation -def single_option_case(setting: config.Setting, when_on: bool, - dependencies: List[str], - note: Optional[str]) -> test_case.TestCase: +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, @@ -27,7 +27,7 @@ def single_option_case(setting: config.Setting, when_on: bool, * 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 option name in the test description. + * 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. """ @@ -43,12 +43,12 @@ def single_option_case(setting: config.Setting, when_on: bool, PSA_WANT_KEY_TYPE_KEY_PAIR_RE = \ re.compile(r'(?PPSA_WANT_KEY_TYPE_(?P\w+)_KEY_PAIR_)(?P\w+)\Z') -# If foo is an option that is only meaningful when bar is enabled, set +# If foo is a setting that is only meaningful when bar is enabled, set # SUPER_SETTINGS[foo]=bar. More generally, bar can be a colon-separated -# list of options, meaning that all the options must be enabled. Each option +# list of settings, meaning that all the settings must be enabled. Each setting # can be prefixed with '!' to negate it. This is the same syntax as a # depends_on directive in test data. -# See also `find_super_option`. +# See also `find_super_setting`. SUPER_SETTINGS = { 'MBEDTLS_AESCE_C': 'MBEDTLS_AES_C', 'MBEDTLS_AESNI_C': 'MBEDTLS_AES_C', @@ -63,12 +63,12 @@ SUPER_SETTINGS = { 'MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS': 'MBEDTLS_PSA_CRYPTO_C', } -def find_super_option(cfg: config.Config, - setting: config.Setting) -> Optional[str]: - """If setting is only meaningful when some option is enabled, return that option. +def find_super_setting(cfg: config.Config, + setting: config.Setting) -> Optional[str]: + """If setting is only meaningful when some setting is enabled, return that setting. - The return value can be a colon-separated list of options, if the setting - is only meaningful when all of these options are enabled. Options can be + The return value can be a colon-separated list of settings, if the setting + is only meaningful when all of these settings are enabled. Settings can be negated by prefixing them with '!'. This is the same syntax as a depends_on directive in test data. """ @@ -81,9 +81,9 @@ def find_super_option(cfg: config.Config, 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 options, insist on having them once off and once on in + # 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 options are also meaningful when only one side is + # 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 @@ -105,12 +105,12 @@ def find_super_option(cfg: config.Config, return m.group('prefix') + 'BASIC' return None -def conditions_for_option(cfg: config.Config, - setting: config.Setting - ) -> Iterator[Tuple[List[str], str]]: +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 options. + * cfg: all configuration settings. * setting: the setting to be tested. Generate a stream of conditions, i.e. extra dependencies to test with @@ -118,47 +118,47 @@ def conditions_for_option(cfg: config.Config, typical cases: * By default, generate a one-element stream with no extra dependencies. - * If the setting is ignored unless some other option is enabled, generate - a one-element stream with that other option as an extra dependency. - * If the setting is known to interact with some other option, generate - a stream with one element where this option is on and one where it's off. + * 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 - super_setting = find_super_option(cfg, setting) + super_setting = find_super_setting(cfg, setting) if super_setting: yield [super_setting], '' return yield [], '' -def enumerate_boolean_option_cases(cfg: config.Config +def enumerate_boolean_setting_cases(cfg: config.Config ) -> Iterable[test_case.TestCase]: - """Emit test cases for all boolean options.""" + """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_option(cfg, setting): - yield single_option_case(setting, when_on, deps, note) + 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, options): + def __init__(self, settings): self.mbedtls_config = config.ConfigFile() self.targets['test_suite_config.mbedtls_boolean'] = \ - lambda: enumerate_boolean_option_cases(self.mbedtls_config) + 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_option_cases(self.psa_config) - super().__init__(options) + lambda: enumerate_boolean_setting_cases(self.psa_config) + super().__init__(settings) if __name__ == '__main__': From 1afb70351e3b4885521c5ed626b1c89a05def56c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 29 May 2024 16:44:52 +0200 Subject: [PATCH 10/16] Terminology: use "dependencies" for a list of settings "Super settings" were effectively the dependencies of a setting, so align on that terminology. Signed-off-by: Gilles Peskine --- scripts/generate_config_tests.py | 34 +++++++++++++++++++------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/scripts/generate_config_tests.py b/scripts/generate_config_tests.py index 3d6a520c4..c0b4ab969 100755 --- a/scripts/generate_config_tests.py +++ b/scripts/generate_config_tests.py @@ -44,12 +44,12 @@ PSA_WANT_KEY_TYPE_KEY_PAIR_RE = \ re.compile(r'(?PPSA_WANT_KEY_TYPE_(?P\w+)_KEY_PAIR_)(?P\w+)\Z') # If foo is a setting that is only meaningful when bar is enabled, set -# SUPER_SETTINGS[foo]=bar. More generally, bar can be a colon-separated +# 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 -# can be prefixed with '!' to negate it. This is the same syntax as a +# in bar can be prefixed with '!' to negate it. This is the same syntax as a # depends_on directive in test data. -# See also `find_super_setting`. -SUPER_SETTINGS = { +# See also `dependencies_of_settting`. +SIMPLE_DEPENDENCIES = { 'MBEDTLS_AESCE_C': 'MBEDTLS_AES_C', 'MBEDTLS_AESNI_C': 'MBEDTLS_AES_C', 'MBEDTLS_ERROR_STRERROR_DUMMY': '!MBEDTLS_ERROR_C', @@ -63,19 +63,25 @@ SUPER_SETTINGS = { 'MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS': 'MBEDTLS_PSA_CRYPTO_C', } -def find_super_setting(cfg: config.Config, - setting: config.Setting) -> Optional[str]: - """If setting is only meaningful when some setting is enabled, return that setting. +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. Settings can be - negated by prefixing them with '!'. This is the same syntax as a + 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 SUPER_SETTINGS: - return SUPER_SETTINGS[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' @@ -128,9 +134,9 @@ def conditions_for_setting(cfg: config.Config, if name.endswith('_ALT') and not config.is_seamless_alt(name): # We don't test alt implementations, except (most) platform alts return - super_setting = find_super_setting(cfg, setting) - if super_setting: - yield [super_setting], '' + dependencies = dependencies_of_setting(cfg, setting) + if dependencies: + yield [dependencies], '' return yield [], '' From 744741bf2c8a2d2a62ea650d48dde85a8e7faa48 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 26 Jun 2024 20:05:10 +0200 Subject: [PATCH 11/16] Adjust generate_config_tests.py for 2.28 * Move to the correct location. * Adjust the package name for auxiliary modules. * Adjust the hack to import a module from scripts. Signed-off-by: Gilles Peskine --- {scripts => tests/scripts}/generate_config_tests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename {scripts => tests/scripts}/generate_config_tests.py (98%) diff --git a/scripts/generate_config_tests.py b/tests/scripts/generate_config_tests.py similarity index 98% rename from scripts/generate_config_tests.py rename to tests/scripts/generate_config_tests.py index c0b4ab969..08eec23a7 100755 --- a/scripts/generate_config_tests.py +++ b/tests/scripts/generate_config_tests.py @@ -9,10 +9,10 @@ import re import sys from typing import Iterable, Iterator, List, Optional, Tuple -import project_scripts # pylint: disable=unused-import +import scripts_path # pylint: disable=unused-import import config -from mbedtls_framework import test_case -from mbedtls_framework import test_data_generation +from mbedtls_dev import test_case +from mbedtls_dev import test_data_generation def single_setting_case(setting: config.Setting, when_on: bool, From cfba2477e6055b447f89db82bf93117830a6a6ee Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 26 Jun 2024 20:11:59 +0200 Subject: [PATCH 12/16] Remove some settings that don't exist in 2.28 Signed-off-by: Gilles Peskine --- tests/scripts/generate_config_tests.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/tests/scripts/generate_config_tests.py b/tests/scripts/generate_config_tests.py index 08eec23a7..a0ae1d451 100755 --- a/tests/scripts/generate_config_tests.py +++ b/tests/scripts/generate_config_tests.py @@ -40,9 +40,6 @@ def single_setting_case(setting: config.Setting, when_on: bool, return tc -PSA_WANT_KEY_TYPE_KEY_PAIR_RE = \ - re.compile(r'(?PPSA_WANT_KEY_TYPE_(?P\w+)_KEY_PAIR_)(?P\w+)\Z') - # 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 @@ -50,7 +47,6 @@ PSA_WANT_KEY_TYPE_KEY_PAIR_RE = \ # depends_on directive in test data. # See also `dependencies_of_settting`. SIMPLE_DEPENDENCIES = { - 'MBEDTLS_AESCE_C': 'MBEDTLS_AES_C', 'MBEDTLS_AESNI_C': 'MBEDTLS_AES_C', 'MBEDTLS_ERROR_STRERROR_DUMMY': '!MBEDTLS_ERROR_C', 'MBEDTLS_GENPRIME': 'MBEDTLS_RSA_C', @@ -95,8 +91,7 @@ def dependencies_of_setting(cfg: config.Config, # 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_') or \ - name == 'MBEDTLS_SSL_EARLY_DATA': + if name.startswith('MBEDTLS_SSL_TLS1_3_'): return 'MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_TLS1_3' if name.startswith('MBEDTLS_SSL_DTLS_'): return 'MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_PROTO_DTLS' @@ -106,9 +101,6 @@ def dependencies_of_setting(cfg: config.Config, super_name = name[:pos.start()] + '_C' if cfg.known(super_name): return super_name - m = PSA_WANT_KEY_TYPE_KEY_PAIR_RE.match(name) - if m and m.group('operation') != 'BASIC': - return m.group('prefix') + 'BASIC' return None def conditions_for_setting(cfg: config.Config, From d33c48b407e2fbc585616a0fa2bdb7a163e93a50 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 26 Jun 2024 20:12:22 +0200 Subject: [PATCH 13/16] Add generated config tests Signed-off-by: Gilles Peskine --- .../test_suite_config.mbedtls_boolean.data | 1755 +++++++++++++++++ .../suites/test_suite_config.psa_boolean.data | 475 +++++ 2 files changed, 2230 insertions(+) create mode 100644 tests/suites/test_suite_config.mbedtls_boolean.data create mode 100644 tests/suites/test_suite_config.psa_boolean.data 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 000000000..1a1d13f37 --- /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 000000000..e297b7bb4 --- /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. From b19fa4e6c7e16009b0b438a8eb5f0a9f8cafb0a4 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 26 Jun 2024 20:12:34 +0200 Subject: [PATCH 14/16] Declare the new generated files Signed-off-by: Gilles Peskine --- tests/scripts/check-generated-files.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/check-generated-files.sh b/tests/scripts/check-generated-files.sh index b1b969f7e..18d10c0a3 100755 --- a/tests/scripts/check-generated-files.sh +++ b/tests/scripts/check-generated-files.sh @@ -102,4 +102,5 @@ check scripts/generate_visualc_files.pl visualc/VS2010 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_bignum_tests.py --list) check tests/scripts/generate_psa_tests.py $(tests/scripts/generate_psa_tests.py --list) From 93708fe126fd7ad5f04d73f19235328797f44159 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 28 Jun 2024 19:16:25 +0200 Subject: [PATCH 15/16] Fix copypasta Signed-off-by: Gilles Peskine --- tests/scripts/check-generated-files.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/check-generated-files.sh b/tests/scripts/check-generated-files.sh index 18d10c0a3..21c2b7cfb 100755 --- a/tests/scripts/check-generated-files.sh +++ b/tests/scripts/check-generated-files.sh @@ -102,5 +102,5 @@ check scripts/generate_visualc_files.pl visualc/VS2010 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_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) From a76a6ff8dfc1bae021bcad0210acd1397dfc42c4 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Mon, 1 Jul 2024 11:32:33 +0200 Subject: [PATCH 16/16] Adjust TLS protocol cases for 2.28 TLS 1.3 is still experimental and partial, and SSL3 is obsolete, so we don't expect much coverage about them, in particular we don't expect them to be the sole supported version. TLS 1.0 and 1.1 exist and we expect good coverage for them. Signed-off-by: Gilles Peskine --- tests/scripts/generate_config_tests.py | 3 ++- tests/suites/test_suite_config.tls_combinations.data | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/tests/scripts/generate_config_tests.py b/tests/scripts/generate_config_tests.py index a0ae1d451..7b62a6553 100755 --- a/tests/scripts/generate_config_tests.py +++ b/tests/scripts/generate_config_tests.py @@ -57,6 +57,7 @@ SIMPLE_DEPENDENCIES = { '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, @@ -92,7 +93,7 @@ def dependencies_of_setting(cfg: config.Config, # 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' + 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_'): diff --git a/tests/suites/test_suite_config.tls_combinations.data b/tests/suites/test_suite_config.tls_combinations.data index cbc57d6cd..2631d6016 100644 --- a/tests/suites/test_suite_config.tls_combinations.data +++ b/tests/suites/test_suite_config.tls_combinations.data @@ -1,9 +1,13 @@ # Interesting combinations of TLS options -Config: TLS 1.2 without TLS 1.3 -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:!MBEDTLS_SSL_PROTO_TLS1_3 +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.3 without TLS 1.2 -depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 +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: