regression: add test case 1039 for subkey
Adds test case 1039 for testing a TA signed with a hierarchy of subkeys.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
diff --git a/host/xtest/Makefile b/host/xtest/Makefile
index af45f5e..36c7e3d 100644
--- a/host/xtest/Makefile
+++ b/host/xtest/Makefile
@@ -137,6 +137,8 @@
CFLAGS += -I../../ta/large/include
CFLAGS += -I../../ta/supp_plugin/include
CFLAGS += -I../../ta/bti_test/include
+CFLAGS += -I../../ta/subkey1/include
+CFLAGS += -I../../ta/subkey2/include
TA_DIR ?= /lib/optee_armtz
CFLAGS += -DTA_DIR=\"$(TA_DIR)\"
diff --git a/host/xtest/regression_1000.c b/host/xtest/regression_1000.c
index a14a6ba..41b714f 100644
--- a/host/xtest/regression_1000.c
+++ b/host/xtest/regression_1000.c
@@ -3196,3 +3196,28 @@
}
ADBG_CASE_DEFINE(regression, 1038, xtest_tee_test_1038,
"Test MTE (Memory Tag Extension)");
+
+static void xtest_tee_test_1039(ADBG_Case_t *c)
+{
+ TEEC_Session session = { };
+ uint32_t ret_orig = 0;
+
+ Do_ADBG_BeginSubCase(c, "Load TA with two levels of subkeys");
+ if (ADBG_EXPECT_TEEC_SUCCESS(c,
+ xtest_teec_open_session(&session, &subkey1_ta_uuid,
+ NULL, &ret_orig)))
+ TEEC_CloseSession(&session);
+ Do_ADBG_EndSubCase(c, "Load TA with two levels of subkeys");
+
+ Do_ADBG_BeginSubCase(c, "Load TA with identity subkey");
+ if (ADBG_EXPECT_TEEC_SUCCESS(c,
+ xtest_teec_open_session(&session, &subkey2_ta_uuid,
+ NULL, &ret_orig)))
+ TEEC_CloseSession(&session);
+ Do_ADBG_EndSubCase(c, "Load TA with identity subkey");
+
+}
+
+
+ADBG_CASE_DEFINE(regression, 1039, xtest_tee_test_1039,
+ "Test subkey verification");
diff --git a/host/xtest/xtest_test.c b/host/xtest/xtest_test.c
index b07599c..7beecff 100644
--- a/host/xtest/xtest_test.c
+++ b/host/xtest/xtest_test.c
@@ -23,6 +23,8 @@
#include <ta_supp_plugin.h>
#include <ta_tpm_log_test.h>
#include <ta_arm_bti.h>
+#include <ta_subkey1.h>
+#include <ta_subkey2.h>
#include <tee_api_defines.h>
#include <tee_client_api.h>
#include <__tee_isocket_defines.h>
@@ -202,3 +204,5 @@
const TEEC_UUID supp_plugin_test_ta_uuid = TA_SUPP_PLUGIN_UUID;
const TEEC_UUID large_ta_uuid = TA_LARGE_UUID;
const TEEC_UUID bti_test_ta_uuid = TA_BTI_UUID;
+const TEEC_UUID subkey1_ta_uuid = TA_SUBKEY1_UUID;
+const TEEC_UUID subkey2_ta_uuid = TA_SUBKEY2_UUID;
diff --git a/host/xtest/xtest_test.h b/host/xtest/xtest_test.h
index 215024b..50fc2b5 100644
--- a/host/xtest/xtest_test.h
+++ b/host/xtest/xtest_test.h
@@ -139,6 +139,8 @@
extern const TEEC_UUID supp_plugin_test_ta_uuid;
extern const TEEC_UUID large_ta_uuid;
extern const TEEC_UUID bti_test_ta_uuid;
+extern const TEEC_UUID subkey1_ta_uuid;
+extern const TEEC_UUID subkey2_ta_uuid;
extern char *xtest_tee_name;
#endif /*XTEST_TEST_H*/