blob: 656136d752301242312d52dd8c1aea36426af17f [file] [log] [blame]
Pascal Brandc639ac82015-07-02 08:53:34 +02001/*
2 * Copyright (c) 2014, STMicroelectronics International N.V.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License Version 2 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14#include "xtest_test.h"
15#include <tee_client_api.h>
16#include <ta_create_fail_test.h>
17#include <ta_crypt.h>
18#include <ta_os_test.h>
19#include <ta_rpc_test.h>
20#include <ta_sims_test.h>
21#include <ta_storage.h>
Jens Wiklanderac27ec12015-07-15 15:23:14 +020022#include <ta_concurrent.h>
Jens Wiklander70672972016-04-06 00:01:45 +020023#include <ta_concurrent_large.h>
Pascal Brandc639ac82015-07-02 08:53:34 +020024#include <enc_fs_key_manager_test.h>
James Kungdf1e6cf2015-09-14 22:42:24 +080025#include <ta_storage_benchmark.h>
Jens Wiklander02389a92016-12-16 11:13:38 +010026#include <ta_socket.h>
Pascal Brandc639ac82015-07-02 08:53:34 +020027#include <tee_api_defines.h>
Jens Wiklander02389a92016-12-16 11:13:38 +010028#include <__tee_isocket_defines.h>
29#include <__tee_tcpsocket_defines.h>
30#include <__tee_udpsocket_defines.h>
Jerome Forissiere3688342015-09-24 10:45:17 -070031#ifdef WITH_GP_TESTS
Pascal Brand8a74e362015-09-10 12:41:52 +020032#include <tee_api_types.h>
33#include <TTA_DS_protocol.h>
34#endif
Pascal Brandc639ac82015-07-02 08:53:34 +020035
36ADBG_ENUM_TABLE_DEFINE_BEGIN(TEEC_Result)
37ADBG_ENUM_TABLE_ENTRY(TEEC_SUCCESS),
38ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_CORRUPT_OBJECT),
39ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_CORRUPT_OBJECT_2),
40ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_STORAGE_NOT_AVAILABLE),
41ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_STORAGE_NOT_AVAILABLE_2),
42ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_GENERIC),
43ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_ACCESS_DENIED),
44ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_CANCEL),
45ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_ACCESS_CONFLICT),
46ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_EXCESS_DATA),
47ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_BAD_FORMAT),
48ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_BAD_PARAMETERS),
49ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_BAD_STATE),
50ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_ITEM_NOT_FOUND),
51ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_NOT_IMPLEMENTED),
52ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_NOT_SUPPORTED),
53ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_NO_DATA),
54ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_OUT_OF_MEMORY),
55ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_BUSY),
56ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_COMMUNICATION),
57ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_SECURITY),
58ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_SHORT_BUFFER),
59ADBG_ENUM_TABLE_ENTRY(TEEC_ERROR_EXTERNAL_CANCEL),
60ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_OVERFLOW),
61ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_TARGET_DEAD),
62ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_STORAGE_NO_SPACE),
63ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_MAC_INVALID),
64ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_SIGNATURE_INVALID),
65ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_TIME_NOT_SET),
Jens Wiklander02389a92016-12-16 11:13:38 +010066ADBG_ENUM_TABLE_ENTRY(TEE_ERROR_TIME_NEEDS_RESET),
67ADBG_ENUM_TABLE_ENTRY(TEE_ISOCKET_ERROR_PROTOCOL),
68ADBG_ENUM_TABLE_ENTRY(TEE_ISOCKET_ERROR_REMOTE_CLOSED),
69ADBG_ENUM_TABLE_ENTRY(TEE_ISOCKET_ERROR_TIMEOUT),
70ADBG_ENUM_TABLE_ENTRY(TEE_ISOCKET_ERROR_OUT_OF_RESOURCES),
71ADBG_ENUM_TABLE_ENTRY(TEE_ISOCKET_ERROR_LARGE_BUFFER),
72ADBG_ENUM_TABLE_ENTRY(TEE_ISOCKET_WARNING_PROTOCOL),
73ADBG_ENUM_TABLE_ENTRY(TEE_ISOCKET_ERROR_HOSTNAME),
74ADBG_ENUM_TABLE_ENTRY(TEE_ISOCKET_UDP_WARNING_UNKNOWN_OUT_OF_BAND)
Pascal Brandc639ac82015-07-02 08:53:34 +020075ADBG_ENUM_TABLE_DEFINE_END(TEEC_Result);
76
77ADBG_ENUM_TABLE_DEFINE_BEGIN(TEEC_ErrorOrigin)
78ADBG_ENUM_TABLE_ENTRY(TEEC_ORIGIN_API),
79ADBG_ENUM_TABLE_ENTRY(TEEC_ORIGIN_COMMS),
80ADBG_ENUM_TABLE_ENTRY(TEEC_ORIGIN_TEE),
81ADBG_ENUM_TABLE_ENTRY(TEEC_ORIGIN_TRUSTED_APP)
82ADBG_ENUM_TABLE_DEFINE_END(TEEC_ErrorOrigin);
83
84#define ECC_SELF_TEST_UUID \
85 { 0xf34f4f3c, 0xab30, 0x4573, \
86 { 0x91, 0xBF, 0x3C, 0x57, 0x02, 0x4D, 0x51, 0x99 } }
87
Jens Wiklandercf16e842016-02-10 09:07:09 +010088#define STA_SELF_TEST_UUID \
89 { 0xd96a5b40, 0xc3e5, 0x21e3, \
90 { 0x87, 0x94, 0x10, 0x02, 0xa5, 0xd5, 0xc6, 0x1b } }
91
92
Pascal Brandc639ac82015-07-02 08:53:34 +020093const TEEC_UUID crypt_user_ta_uuid = TA_CRYPT_UUID;
94const TEEC_UUID os_test_ta_uuid = TA_OS_TEST_UUID;
95const TEEC_UUID create_fail_test_ta_uuid = TA_CREATE_FAIL_TEST_UUID;
96const TEEC_UUID ecc_test_ta_uuid = ECC_SELF_TEST_UUID;
Jens Wiklandercf16e842016-02-10 09:07:09 +010097const TEEC_UUID sta_test_ta_uuid = STA_SELF_TEST_UUID;
Pascal Brandc639ac82015-07-02 08:53:34 +020098const TEEC_UUID rpc_test_ta_uuid = TA_RPC_TEST_UUID;
99const TEEC_UUID sims_test_ta_uuid = TA_SIMS_TEST_UUID;
100const TEEC_UUID storage_ta_uuid = TA_STORAGE_UUID;
Jerome Forissiere3854162016-08-12 12:40:12 +0200101const TEEC_UUID storage2_ta_uuid = TA_STORAGE2_UUID;
Pascal Brandc639ac82015-07-02 08:53:34 +0200102const TEEC_UUID enc_fs_key_manager_test_ta_uuid = ENC_FS_KEY_MANAGER_TEST_UUID;
Jens Wiklanderac27ec12015-07-15 15:23:14 +0200103const TEEC_UUID concurrent_ta_uuid = TA_CONCURRENT_UUID;
Jens Wiklander70672972016-04-06 00:01:45 +0200104const TEEC_UUID concurrent_large_ta_uuid = TA_CONCURRENT_LARGE_UUID;
James Kungdf1e6cf2015-09-14 22:42:24 +0800105const TEEC_UUID storage_benchmark_ta_uuid = TA_STORAGE_BENCHMARK_UUID;
Jens Wiklander02389a92016-12-16 11:13:38 +0100106const TEEC_UUID socket_ta_uuid = TA_SOCKET_UUID;
Jerome Forissiere3688342015-09-24 10:45:17 -0700107#ifdef WITH_GP_TESTS
Pascal Brand8a74e362015-09-10 12:41:52 +0200108const TEEC_UUID gp_tta_ds_uuid = TA_TTA_DS_UUID;
109#endif