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 <vsetti@baylibre.com>
diff --git a/scripts/generate_test_keys.py b/scripts/generate_test_keys.py
index 7541775..78551c9 100755
--- a/scripts/generate_test_keys.py
+++ b/scripts/generate_test_keys.py
@@ -15,7 +15,7 @@
 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 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 <mbedtls/private/ecp.h>
+#else
+#include <mbedtls/ecp.h>
+#endif
+
 """)
         output.write(arrays)
         output.write("""
@@ -107,10 +118,18 @@
     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))