From 92d56edb31c2b494aa19777c99b03c2c2d94d5f6 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 17 Dec 2025 16:31:03 +0100 Subject: [PATCH] scripts: generate_test_keys: allow multiple usage of the generated header - declare all arrays and structures as static - add guards to the header file This allows multiple inclusions of the generated header file. Signed-off-by: Valerio Setti --- scripts/generate_test_keys.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/scripts/generate_test_keys.py b/scripts/generate_test_keys.py index 75417759b..78551c9cf 100755 --- a/scripts/generate_test_keys.py +++ b/scripts/generate_test_keys.py @@ -15,7 +15,7 @@ from mbedtls_framework import build_tree BYTES_PER_LINE = 16 def c_byte_array_literal_content(array_name: str, key_data: bytes) -> Iterator[str]: - yield 'const unsigned char ' + yield 'static const unsigned char ' yield array_name yield '[] = {' for index in range(0, len(key_data), BYTES_PER_LINE): @@ -89,12 +89,23 @@ def get_look_up_table_entry(key_type: str, group_id_or_keybits: str, def write_output_file(output_file_name: str, arrays: str, look_up_table: str): + """Write generated content to the output file""" with open(output_file_name, 'wt') as output: output.write("""\ /********************************************************************************* * This file was automatically generated from framework/scripts/generate_test_keys.py. * Please do not edit it manually. *********************************************************************************/ + +#ifndef TEST_TEST_KEYS_H +#define TEST_TEST_KEYS_H + +#if !defined(MBEDTLS_VERSION_MAJOR) || MBEDTLS_VERSION_MAJOR >= 4 +#include +#else +#include +#endif + """) output.write(arrays) output.write(""" @@ -107,10 +118,18 @@ struct predefined_key_element {{ size_t pub_key_len; }}; -struct predefined_key_element predefined_keys[] = {{ +#if defined(__GNUC__) || defined(__clang__) +#define UNUSED __attribute__((unused)) +#else +#define UNUSED +#endif + +static struct predefined_key_element predefined_keys[] UNUSED = {{ {} }}; +#endif /* TEST_TEST_KEYS_H */ + /* End of generated file */ """.format(look_up_table))