test: automatically generate test_certs.h and test_keys.h

Ensure that when tests are built also test_certs.h and
test_keys.h are generated.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fb9e1c3..565e92e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -311,10 +311,125 @@
 # to define the test executables.
 #
 if(ENABLE_TESTING OR ENABLE_PROGRAMS)
+    add_custom_command(
+        OUTPUT
+            ./tests/src/test_keys.h
+        WORKING_DIRECTORY
+            ${CMAKE_CURRENT_SOURCE_DIR}
+        COMMAND
+            ${MBEDTLS_PYTHON_EXECUTABLE}
+                "${CMAKE_CURRENT_SOURCE_DIR}/tests/scripts/generate_test_keys.py"
+                    "--output"
+                        "${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_keys.h"
+        DEPENDS
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/scripts/generate_test_keys.py
+    )
+    add_custom_command(
+        OUTPUT
+            ./tests/src/test_certs.h
+        WORKING_DIRECTORY
+            ${CMAKE_CURRENT_SOURCE_DIR}
+        COMMAND
+            "${MBEDTLS_PYTHON_EXECUTABLE}"
+                "${CMAKE_CURRENT_SOURCE_DIR}/tests/scripts/generate_test_cert_macros.py"
+                    "--output"
+                        "${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_certs.h"
+                    "--string"
+                        "TEST_CA_CRT_EC_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca2.crt"
+                    "--binary"
+                        "TEST_CA_CRT_EC_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca2.crt.der"
+                    "--string"
+                        "TEST_CA_KEY_EC_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca2.key.enc"
+                    "--password"
+                        "TEST_CA_PWD_EC_PEM=PolarSSLTest"
+                    "--binary"
+                        "TEST_CA_KEY_EC_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca2.key.der"
+                    "--string"
+                        "TEST_CA_CRT_RSA_SHA256_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca-sha256.crt"
+                    "--binary"
+                        "TEST_CA_CRT_RSA_SHA256_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca-sha256.crt.der"
+                    "--string"
+                        "TEST_CA_CRT_RSA_SHA1_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca-sha1.crt"
+                    "--binary"
+                        "TEST_CA_CRT_RSA_SHA1_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca-sha1.crt.der"
+                    "--string"
+                        "TEST_CA_KEY_RSA_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca.key"
+                    "--password"
+                        "TEST_CA_PWD_RSA_PEM=PolarSSLTest"
+                    "--binary"
+                        "TEST_CA_KEY_RSA_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca.key.der"
+                    "--string"
+                        "TEST_SRV_CRT_EC_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server5.crt"
+                    "--binary"
+                        "TEST_SRV_CRT_EC_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server5.crt.der"
+                    "--string"
+                        "TEST_SRV_KEY_EC_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server5.key"
+                    "--binary"
+                        "TEST_SRV_KEY_EC_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server5.key.der"
+                    "--string"
+                        "TEST_SRV_CRT_RSA_SHA256_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2-sha256.crt"
+                    "--binary"
+                        "TEST_SRV_CRT_RSA_SHA256_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2-sha256.crt.der"
+                    "--string"
+                        "TEST_SRV_CRT_RSA_SHA1_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2.crt"
+                    "--binary"
+                        "TEST_SRV_CRT_RSA_SHA1_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2.crt.der"
+                    "--string"
+                        "TEST_SRV_KEY_RSA_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2.key"
+                    "--binary"
+                        "TEST_SRV_KEY_RSA_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2.key.der"
+                    "--string"
+                        "TEST_CLI_CRT_EC_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli2.crt"
+                    "--binary"
+                        "TEST_CLI_CRT_EC_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli2.crt.der"
+                    "--string"
+                        "TEST_CLI_KEY_EC_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli2.key"
+                    "--binary"
+                        "TEST_CLI_KEY_EC_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli2.key.der"
+                    "--string"
+                        "TEST_CLI_CRT_RSA_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli-rsa-sha256.crt"
+                    "--binary"
+                        "TEST_CLI_CRT_RSA_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli-rsa-sha256.crt.der"
+                    "--string"
+                        "TEST_CLI_KEY_RSA_PEM=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli-rsa.key"
+                    "--binary"
+                        "TEST_CLI_KEY_RSA_DER=${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli-rsa.key.der"
+        DEPENDS
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/scripts/generate_test_cert_macros.py
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca2.crt
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca2.crt.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca2.key.enc
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca2.key.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca-sha256.crt
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca-sha256.crt.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca-sha1.crt
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca-sha1.crt.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca.key
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/test-ca.key.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server5.crt
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server5.crt.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server5.key
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server5.key.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2-sha256.crt
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2-sha256.crt.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2.crt
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2.crt.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2.key
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/server2.key.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli2.crt
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli2.crt.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli2.key
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli2.key.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli-rsa-sha256.crt
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli-rsa-sha256.crt.der
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli-rsa.key
+            ${CMAKE_CURRENT_SOURCE_DIR}/tests/data_files/cli-rsa.key.der
+    )
     file(GLOB MBEDTLS_TEST_FILES
          ${CMAKE_CURRENT_SOURCE_DIR}/tests/src/*.c
          ${CMAKE_CURRENT_SOURCE_DIR}/tests/src/drivers/*.c)
-    add_library(mbedtls_test OBJECT ${MBEDTLS_TEST_FILES})
+    add_library(mbedtls_test OBJECT ${MBEDTLS_TEST_FILES}
+                ./tests/src/test_keys.h ./tests/src/test_certs.h)
     target_include_directories(mbedtls_test
         PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/tests/include
         PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include