1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (c) 2014, STMicroelectronics International N.V.
4  * Copyright (c) 2020, Linaro Limited
5  */
6 
7 #ifndef XML_DATASTORAGE_API_H_
8 #define XML_DATASTORAGE_API_H_
9 
10 #include <assert.h>
11 #include <pthread.h>
12 #include <stdio.h>
13 #include <stdlib.h>
14 #include <string.h>
15 #include <sys/types.h>
16 #include <tee_api_defines.h>
17 #include <tee_client_api.h>
18 #include <unistd.h>
19 
20 #include "xml_common_api.h"
21 #include "xtest_helpers.h"
22 #include "xtest_test.h"
23 
24 #define declare_local_vars \
25 	uint32_t iObjectUsage1 __maybe_unused = 0; \
26 	uint32_t iObjectDataFlags1 __maybe_unused = 0; \
27 	uint32_t iObjectDataFlags2 __maybe_unused = 0; \
28 	uint32_t iObjectDataFlags3 __maybe_unused = 0; \
29 	uint32_t iHandleFlags1 __maybe_unused = 0; \
30 	uint32_t iAttributeList1 __maybe_unused = 0;
31 
32 #define iAttributeListEmpty	0u
33 
34 #define CLIENT_APP01                    NULL
35 
36 #define TEEC_UNDEFINED_ERROR 0xDEADDEAD
37 
38 #define TEEC_ORIGIN_ANY_NOT_TRUSTED_APP  0x00000005
39 
40 #define CMD_DS_AllocatePersistentObjectEnumerator	0x10000015
41 #define CMD_DS_AllocateTransientObject			0x10000001
42 #define CMD_DS_Check_ObjectInfo				0x100000C2
43 #define CMD_DS_CloseAndDeletePersistentObject		0x1000102B
44 #define CMD_DS_CloseAndDeletePersistentObject1		0x1000102C
45 #define CMD_DS_CloseObject				0x10000011
46 #define CMD_DS_CopyObjectAttributes			0x10000022
47 #define CMD_DS_CopyObjectAttributes1			0x10000009
48 #define CMD_DS_CreatePersistentObject			0x10000010
49 #define CMD_DS_FreePersistentObjectEnumerator		0x10000016
50 #define CMD_DS_FreeTransientObject			0x10000004
51 #define CMD_DS_GenerateKey				0x1000100B
52 #define CMD_DS_GetNextPersistentObject			0x10000019
53 #define CMD_DS_GetObjectBufferAttribute			0x10000008
54 #define CMD_DS_GetObjectInfo				0x10000023
55 #define CMD_DS_GetObjectInfo1				0x10000002
56 #define CMD_DS_GetObjectValueAttribute			0x10000012
57 #define CMD_DS_InitRefAttribute				0x10000006
58 #define CMD_DS_InitValueAttribute			0x1000101F
59 #define CMD_DS_OpenPersistentObject			0x10000013
60 #define CMD_DS_PopulateTransientObject			0x10000007
61 #define CMD_DS_PopulateTransientObject_BadAttrBuffer	0x10000027
62 #define CMD_DS_ReadObjectData				0x10001028
63 #define CMD_DS_RenamePersistentObject			0x10000014
64 #define CMD_DS_ResetPersistentObjectEnumerator		0x10000017
65 #define CMD_DS_ResetTransientObject			0x10000005
66 #define CMD_DS_RestrictObjectUsage			0x10000021
67 #define CMD_DS_RestrictObjectUsage1			0x10000003
68 #define CMD_DS_Retrieve_ObjectInfo			0x10000020
69 #define CMD_DS_SeekObjectData				0x10000024
70 #define CMD_DS_StartPersistentObjectEnumerator		0x10000018
71 #define CMD_DS_StoreBuffer				0x1F0000CB
72 #define CMD_DS_TruncateObjectData			0x10000026
73 #define CMD_DS_WriteObjectData				0x10000025
74 
75 #define TYPE_NOT_EXISTING				0xA0000095
76 
77 #define OFFSET_0			0
78 #define OFFSET_1			1
79 #define OFFSET_DOUBLE_MAX_INT32		0xFFFFFFFE
80 #define OFFSET_HIGH			900
81 #define OFFSET_HIGH_PLUS_HIGH		(OFFSET_HIGH + OFFSET_HIGH)
82 #define OFFSET_INITIAL_DATA_SIZE	1024
83 #define OFFSET_INITIAL_DATA_SIZE_PLUS_LOW (OFFSET_INITIAL_DATA_SIZE + \
84 					   OFFSET_LOW)
85 #define OFFSET_LOW			300
86 #define OFFSET_LOW_PLUS_HIGH		(OFFSET_LOW + OFFSET_HIGH)
87 #define OFFSET_LOW_PLUS_LOW		(OFFSET_LOW + OFFSET_LOW)
88 #define OFFSET_MAX_INT32		0x7FFFFFFF
89 #define OFFSET_NEG_1			-1
90 
91 #define BUFFER01_SIZE			sizeof(BUFFER01)
92 #define BUFFER01_SIZE_EXTENDED_01	(BUFFER01_SIZE + OFFSET_LOW)
93 #define BUFFER01_SIZE_EXTENDED_02	(BUFFER01_SIZE + \
94 					 OFFSET_LOW_PLUS_HIGH - \
95 					 INITIAL_DATA_SIZE)
96 #define BUFFER_BIG_SIZE			BIG_SIZE
97 #define BUFFER_SIZE_TOO_SMALL		10
98 #define INITIAL_DATA_SIZE		1024
99 #define LARGER_THAN_INITIAL		1500
100 #define SHORTER_THAN_INITIAL		500
101 #define SIZE_0				0
102 #define SIZE_1				1
103 
104 #define BUFFER_SIZE_TOO_SMALL	10
105 #define SIZE_0		0
106 #define SIZE_1		1
107 
108 #define INITIAL_DATA_SIZE 1024
109 #define LARGER_THAN_INITIAL 1500
110 #define SHORTER_THAN_INITIAL 500
111 
112 #define KEY_SIZE_TOO_LARGE			4096
113 #define SIZE_AES_192				192
114 #define SIZE_AES_256				256
115 #define SIZE_DES3_128				128
116 #define SIZE_DES3_192				192
117 #define SIZE_DES_64				64
118 #define SIZE_DH_KEYPAIR_1024			1024
119 #define SIZE_DIGEST_MD5_16			16
120 #define SIZE_DIGEST_SHA1_20			20
121 #define SIZE_DIGEST_SHA224_28			28
122 #define SIZE_DIGEST_SHA256_32			32
123 #define SIZE_DIGEST_SHA384_48			48
124 #define SIZE_DIGEST_SHA512_64			64
125 #define SIZE_DSA_SHA1_KEYPAIR_768		768
126 #define SIZE_DSA_SHA1_PUBLIC_KEY_768		768
127 #define SIZE_DSA_SHA224_KEYPAIR_2048		2048
128 #define SIZE_DSA_SHA224_PUBLIC_KEY_2048		2048
129 #define SIZE_DSA_SHA256_KEYPAIR_2048		2048
130 #define SIZE_DSA_SHA256_KEYPAIR_3072		3072
131 #define SIZE_DSA_SHA256_PUBLIC_KEY_2048		2048
132 #define SIZE_DSA_SHA256_PUBLIC_KEY_3072		3072
133 #define SIZE_ECDH_P192				192
134 #define SIZE_ECDH_P224				224
135 #define SIZE_ECDH_P256				256
136 #define SIZE_ECDH_P384				384
137 #define SIZE_ECDH_P521				521
138 #define SIZE_ECDSA_P192				192
139 #define SIZE_ECDSA_P224				224
140 #define SIZE_ECDSA_P256				256
141 #define SIZE_ECDSA_P384				384
142 #define SIZE_ECDSA_P521				521
143 #define SIZE_GENERIC_SECRET_2048		2048
144 #define SIZE_HMAC_MD5_256			256
145 #define SIZE_HMAC_SHA1_256			256
146 #define SIZE_HMAC_SHA224_256			256
147 #define SIZE_HMAC_SHA256_512			512
148 #define SIZE_HMAC_SHA384_512			512
149 #define SIZE_HMAC_SHA512_512			512
150 #define SIZE_RSA_KEYPAIR_1024			1024
151 #define SIZE_RSA_KEYPAIR_2048			2048
152 #define SIZE_RSA_PUBLIC_KEY_2048		2048
153 #define SIZE_ZERO				0
154 #define WRONG_ECC_SIZE				10
155 #define WRONG_SIZE				5
156 
157 #define TEE_ERROR_TOO_SHORT_BUFFER TEE_ERROR_SHORT_BUFFER
158 
159 #define TEE_ATTR_NONE (uint32_t)0
160 
161 #define NOMINAL_CASE 0
162 
163 #define BUFFER_ATTRIBUTE 0
164 #define VALUE_ATTRIBUTE 1
165 
166 #define TEE_ATTR_TEST_VALUE_A	0x0000FFFF
167 #define TEE_ATTR_TEST_VALUE_B	0xFFFF0000
168 
169 #define OBJECT_HANDLE_NULL	0
170 #define OBJECT_HANDLE_01	1
171 #define OBJECT_HANDLE_02	2
172 #define OBJECT_HANDLE_03	3
173 #define OBJECT_HANDLE_INVALID	4
174 
175 #define OBJECT_INFO_01		1
176 
177 #define INVALID_HANDLE		0xFFFFFF01
178 #define OBJECT_ENUM_NULL	0xFFFFFF00
179 #define OBJECT_ENUM_01		0
180 
181 #define ATTRIBUTE_01		0
182 #define ATTRIBUTE_02		1
183 #define ATTRIBUTE_03		2
184 #define ATTRIBUTE_04		3
185 #define ATTRIBUTE_05		4
186 #define ATTRIBUTE_06		5
187 #define ATTRIBUTE_NONE		0xFFFFFFFF
188 
189 #define BUFFER_01		0
190 #define BUFFER_02		1
191 #define BUFFER_03		2
192 #define BUFFER_04		3
193 #define BUFFER_05		4
194 #define BUFFER_06		5
195 
196 #define iObjectUsageNone	0
197 #define iObjectUsageAllBitsOne	0xFFFFFFFF
198 #define iHandleFlagsNone	0
199 #define iObjectDataFlagsNone	0
200 
201 struct obj_info {
202 	uint8_t obj_id[TEE_OBJECT_ID_MAX_LEN];
203 	uint32_t obj_id_len;
204 	uint32_t obj_type;
205 	uint32_t obj_size;
206 	uint32_t max_obj_size;
207 	uint32_t obj_usage;
208 	uint32_t data_size;
209 	uint32_t data_pos;
210 	uint32_t handle_flags;
211 };
212 
213 #define MAX_NUM_SAVED_OBJ_INFO 4
214 static struct obj_info saved_obj_info[MAX_NUM_SAVED_OBJ_INFO];
215 
216 static void *saved_obj_data;
217 static size_t saved_obj_data_size;
218 
219 static TEEC_SharedMemory share_mem[1];
220 static TEEC_SharedMemory *SHARE_MEM01 = share_mem;
221 static TEEC_Session session[2];
222 static TEEC_Session *SESSION01 = session;
223 static TEEC_Session *SESSION02 = session + 1;
224 static TEEC_Context context[2];
225 static TEEC_Context *CONTEXT01 = context;
226 static TEEC_Context *CONTEXT02 = context + 1;
227 
228 #define STORAGE_ID_NOT_EXISTING	0x01234567
229 
230 #define OBJECT_ID_01		"testobject01"
231 #define OBJECT_ID_02		"testobject02"
232 #define OBJECT_ID_03		"testobject03"
233 #define OBJECT_ID_SR		"testobjectSR"
234 #define OBJECT_ID_TOO_LONG	"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEFx"
235 #define EMPTY_BUFFER		NULL
236 
237 #define BIG_ATTRIBUTE_BUFFER_SIZE	512
238 
239 static const uint8_t
240 TEE_ATTR_RSA_PUBLIC_EXPONENT_VALUE_GEN_OUT_OF_RANGE_INF[] = {
241 	0x11, /* 17 */
242 };
243 
244 static const uint8_t TEE_ATTR_RSA_PUBLIC_EXPONENT_VALUE_GEN_NOT_ODD[] = {
245 	0x01, 0x00, 0x02, /* 65538 */
246 };
247 
248 static const uint8_t TEE_ATTR_RSA_PUBLIC_EXPONENT_VALUE_65537[] = {
249 	0x01, 0x00, 0x01, /* 65537 */
250 };
251 
252 static const uint8_t TEE_ATTR_RSA_PUBLIC_EXPONENT_VALUE_NOT_GEN_DEFAULT[] = {
253 	0x01, 0x01, 0xd1, /* 66001 */
254 };
255 
256 static const uint8_t TEE_ATTR_AES_192_VALUE01[] = {
257 	0xcd, 0xfe, 0x57, 0xb6, 0xb6, 0x2f, 0xae, 0x6b,
258 	0x04, 0x73, 0x40, 0xf1, 0x02, 0xd6, 0xa4, 0x8c,
259 	0x89, 0x5d, 0xad, 0xf2, 0x9d, 0x62, 0xef, 0x25,
260 };
261 
262 static const uint8_t TEE_ATTR_AES_256_VALUE01[] = {
263 	0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe, 0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81,
264 	0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7, 0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4,
265 };
266 
267 static const uint8_t TEE_ATTR_DES3_128_VALUE01[] = {
268 	0xcd, 0xfe, 0x57, 0xb6, 0xb6, 0x2f, 0xae, 0x6b,
269 	0x04, 0x73, 0x40, 0xf1, 0x02, 0xd6, 0xa4, 0x8c,
270 };
271 
272 static const uint8_t TEE_ATTR_DES3_192_VALUE01[] = {
273 	0xcd, 0xfe, 0x57, 0xb6, 0xb6, 0x2f, 0xae, 0x6b,
274 	0x04, 0x73, 0x40, 0xf1, 0x02, 0xd6, 0xa4, 0x8c,
275 	0x89, 0x5d, 0xad, 0xf2, 0x9d, 0x62, 0xef, 0x25,
276 };
277 
278 static const uint8_t TEE_ATTR_DES_64_VALUE01[] = {
279 	0xcd, 0xfe, 0x57, 0xb6, 0xb6, 0x2f, 0xae, 0x6b,
280 };
281 
282 static const uint8_t TEE_ATTR_DH_BASE_2048_VALUE01[] = {
283 	0x34, 0x49, 0x90, 0x84, 0xea, 0x17, 0x68, 0x38, 0x67, 0x39, 0x4a, 0xda, 0x44, 0xd2, 0x86, 0xac,
284 	0x8c, 0x9c, 0x75, 0x50, 0x50, 0xdd, 0x7e, 0x8f, 0x1f, 0x42, 0x35, 0xb0, 0x46, 0x6e, 0x40, 0xa0,
285 	0x2f, 0x55, 0xa0, 0x9e, 0xb8, 0xf6, 0x8b, 0xc8, 0x62, 0x43, 0x7f, 0x5f, 0x45, 0xb6, 0x9f, 0xb1,
286 	0x2a, 0x92, 0x3e, 0xff, 0x93, 0xd1, 0xa9, 0x6c, 0x0a, 0x55, 0x51, 0x35, 0x91, 0xcc, 0xa8, 0x37,
287 	0x7c, 0xa2, 0xdd, 0xb5, 0x0d, 0xa0, 0xbd, 0x4a, 0xdd, 0xa1, 0x4d, 0x8b, 0xa2, 0x1e, 0x59, 0x73,
288 	0x49, 0x58, 0xb7, 0x23, 0xf2, 0x67, 0x3e, 0x50, 0x07, 0xab, 0xce, 0x8e, 0x4e, 0xf6, 0xdf, 0x09,
289 	0x98, 0x40, 0x04, 0x65, 0x25, 0x98, 0xa2, 0x93, 0x9b, 0x1e, 0x15, 0x1b, 0x8d, 0xbf, 0x0c, 0x87,
290 	0x80, 0xee, 0xa4, 0x0f, 0xd9, 0xe8, 0x08, 0xb6, 0xae, 0x1e, 0xcf, 0xfa, 0x73, 0x0d, 0x19, 0x3f,
291 	0x78, 0xc9, 0xeb, 0x7f, 0xd7, 0x28, 0x39, 0x1f, 0xa6, 0xec, 0x65, 0x15, 0xd2, 0x84, 0xc0, 0x8c,
292 	0x2a, 0xc1, 0x1b, 0x27, 0x3d, 0xc9, 0x70, 0x9d, 0xd7, 0x63, 0xb3, 0xe1, 0x8d, 0xbb, 0x9d, 0x5e,
293 	0x61, 0x1b, 0xc7, 0x83, 0xc3, 0x37, 0x38, 0x2a, 0xea, 0x6a, 0x66, 0x22, 0xe7, 0x04, 0x5b, 0x87,
294 	0x8b, 0x3d, 0xc5, 0x8c, 0x45, 0xd6, 0x50, 0x22, 0x80, 0xbe, 0xca, 0x16, 0x63, 0x7c, 0xdc, 0x0b,
295 	0xad, 0x35, 0x2e, 0xb5, 0x9b, 0xf7, 0x36, 0xfc, 0x6b, 0x17, 0xf0, 0xe2, 0x8c, 0xb6, 0x8f, 0x81,
296 	0x6d, 0xfa, 0x49, 0x8c, 0x5e, 0x70, 0x6e, 0x5d, 0x5f, 0xdd, 0x49, 0x81, 0xe4, 0x75, 0x2f, 0xe3,
297 	0x71, 0xb4, 0x2d, 0x10, 0xb5, 0xa2, 0x7e, 0x25, 0x42, 0x2e, 0x7c, 0x70, 0x00, 0x5e, 0xfc, 0x2e,
298 	0xc0, 0x3f, 0x21, 0x02, 0x6f, 0xe5, 0x00, 0x8b, 0xde, 0xee, 0x9b, 0x1a, 0x5a, 0x8a, 0x19, 0x40,
299 };
300 
301 static const uint8_t TEE_ATTR_DH_BASE_VALUE01[] = {
302 	0x1c, 0xe0, 0xf6, 0x69, 0x26, 0x46, 0x11, 0x97, 0xef, 0x45, 0xc4, 0x65, 0x8b, 0x83, 0xb8, 0xab,
303 	0x04, 0xa9, 0x22, 0x42, 0x68, 0x50, 0x4d, 0x05, 0xb8, 0x19, 0x83, 0x99, 0xdd, 0x71, 0x37, 0x18,
304 	0xcc, 0x1f, 0x24, 0x5d, 0x47, 0x6c, 0xcf, 0x61, 0xa2, 0xf9, 0x34, 0x93, 0xf4, 0x1f, 0x55, 0x52,
305 	0x48, 0x65, 0x57, 0xe6, 0xd4, 0xca, 0xa8, 0x00, 0xd6, 0xd0, 0xdb, 0x3c, 0xbf, 0x5a, 0x95, 0x4b,
306 	0x20, 0x8a, 0x4e, 0xba, 0xf7, 0xe6, 0x49, 0xfb, 0x61, 0x24, 0xd8, 0xa2, 0x1e, 0xf2, 0xf2, 0x2b,
307 	0xaa, 0xae, 0x29, 0x21, 0x10, 0x19, 0x10, 0x51, 0x46, 0x47, 0x31, 0xb6, 0xcc, 0x3c, 0x93, 0xdc,
308 	0x6e, 0x80, 0xba, 0x16, 0x0b, 0x66, 0x64, 0xa5, 0x6c, 0xfa, 0x96, 0xea, 0xf1, 0xb2, 0x83, 0x39,
309 	0x8e, 0xb4, 0x61, 0x64, 0xe5, 0xe9, 0x43, 0x84, 0xee, 0x02, 0x24, 0xe7, 0x1f, 0x03, 0x7c, 0x23,
310 };
311 
312 static const uint8_t TEE_ATTR_DH_PRIME_2048_VALUE01[] = {
313 	0xbb, 0xe9, 0x83, 0xd5, 0x01, 0xd1, 0xc8, 0xf3, 0x28, 0xff, 0x36, 0x1a, 0x82, 0xc8, 0x9b, 0x9f,
314 	0x72, 0xbe, 0x14, 0x20, 0x5e, 0x15, 0x13, 0xa0, 0x24, 0x89, 0x79, 0x0a, 0x67, 0x44, 0xd9, 0x05,
315 	0x59, 0x90, 0x51, 0x83, 0xf0, 0xed, 0xb5, 0x7d, 0x1a, 0x9a, 0xf4, 0x69, 0x6d, 0x82, 0xc3, 0x5f,
316 	0xe2, 0x97, 0x94, 0x59, 0xb9, 0xb2, 0x7a, 0x7b, 0xac, 0x6d, 0xba, 0x21, 0xe9, 0xb4, 0xe9, 0x64,
317 	0xd9, 0x88, 0x5c, 0xe0, 0xbf, 0x62, 0x5b, 0xd4, 0x4c, 0x0e, 0xc9, 0x0d, 0xab, 0x62, 0xe6, 0xf3,
318 	0x23, 0xf0, 0xa1, 0xd1, 0xda, 0x83, 0x66, 0x06, 0xd3, 0x77, 0x14, 0x00, 0x76, 0x11, 0x21, 0xb6,
319 	0xa5, 0x6a, 0xc5, 0x4d, 0x38, 0xbc, 0x50, 0x6a, 0x9f, 0x89, 0xd6, 0x91, 0x73, 0xee, 0x2f, 0x77,
320 	0x45, 0xeb, 0xcf, 0x02, 0x66, 0xd5, 0xd6, 0xc9, 0x94, 0x24, 0x6b, 0x99, 0x88, 0x0d, 0x5f, 0xe6,
321 	0x19, 0x53, 0x30, 0x3d, 0x01, 0x40, 0x9f, 0x4c, 0x75, 0xae, 0x7b, 0xfd, 0xd8, 0xea, 0x2d, 0x77,
322 	0x6d, 0x0a, 0x3a, 0x61, 0x61, 0xcb, 0x28, 0x4d, 0xa6, 0xc9, 0x2c, 0xbe, 0x45, 0x9e, 0xc5, 0xee,
323 	0x42, 0xcf, 0xde, 0x86, 0x68, 0x01, 0x42, 0x34, 0xc3, 0x63, 0xdd, 0xeb, 0x52, 0x44, 0xe2, 0x5e,
324 	0xef, 0xdd, 0x96, 0x17, 0x66, 0x90, 0xc4, 0xc9, 0xd8, 0x52, 0x45, 0x08, 0xc2, 0xc2, 0x6a, 0x44,
325 	0x73, 0x16, 0xad, 0x12, 0xbf, 0x90, 0xac, 0x48, 0xd3, 0xd0, 0x65, 0x8a, 0x18, 0xc9, 0x6c, 0x23,
326 	0x24, 0x61, 0x42, 0x01, 0xc5, 0xe5, 0x8e, 0x1d, 0x85, 0xb7, 0x40, 0x72, 0x53, 0x6d, 0x3c, 0x15,
327 	0x51, 0x52, 0x09, 0x38, 0x05, 0xc7, 0xf5, 0x8e, 0x9d, 0xa0, 0xf0, 0xb9, 0x41, 0x50, 0x54, 0xc6,
328 	0x70, 0x46, 0x31, 0x3e, 0xc6, 0x4d, 0x6f, 0x48, 0x85, 0xa4, 0x6b, 0x16, 0x15, 0x86, 0xa6, 0x99,
329 };
330 
331 static const uint8_t TEE_ATTR_DH_PRIME_VALUE01[] = {
332 	0xe0, 0x01, 0xe8, 0x96, 0x7d, 0xb4, 0x93, 0x53, 0xe1, 0x6f, 0x8e, 0x89, 0x22, 0x0c, 0xce, 0xfc,
333 	0x5c, 0x5f, 0x12, 0xe3, 0xdf, 0xf8, 0xf1, 0xd1, 0x49, 0x90, 0x12, 0xe6, 0xef, 0x53, 0xe3, 0x1f,
334 	0x02, 0xea, 0xcc, 0x5a, 0xdd, 0xf3, 0x37, 0x89, 0x35, 0xc9, 0x5b, 0x21, 0xea, 0x3d, 0x6f, 0x1c,
335 	0xd7, 0xce, 0x63, 0x75, 0x52, 0xec, 0x38, 0x6c, 0x0e, 0x34, 0xf7, 0x36, 0xad, 0x95, 0x17, 0xef,
336 	0xfe, 0x5e, 0x4d, 0xa7, 0xa8, 0x6a, 0xf9, 0x0e, 0x2c, 0x22, 0x8f, 0xe4, 0xb9, 0xe6, 0xd8, 0xf8,
337 	0xf0, 0x2d, 0x20, 0xaf, 0x78, 0xab, 0xb6, 0x92, 0xac, 0xbc, 0x4b, 0x23, 0xfa, 0xf2, 0xc5, 0xcc,
338 	0xd4, 0x9a, 0x0c, 0x9a, 0x8b, 0xcd, 0x91, 0xac, 0x0c, 0x55, 0x92, 0x01, 0xe6, 0xc2, 0xfd, 0x1f,
339 	0x47, 0xc2, 0xcb, 0x2a, 0x88, 0xa8, 0x3c, 0x21, 0x0f, 0xc0, 0x54, 0xdb, 0x29, 0x2d, 0xbc, 0x45,
340 };
341 
342 static const uint8_t TEE_ATTR_DH_PRIVATE_VALUE_256_2048_VALUE01[] = {
343 	0xd7, 0x2a, 0x8b, 0x81, 0x2b, 0x22, 0x7a, 0x7e, 0x0e, 0xc1, 0xbe, 0x32, 0xfe, 0xdc, 0xda, 0xf4,
344 	0xda, 0x4e, 0xe2, 0xe3, 0x6e, 0x73, 0x40, 0x28, 0x72, 0xf9, 0x46, 0x20, 0xb6, 0xd4, 0xb1, 0xdc,
345 };
346 
347 static const uint8_t TEE_ATTR_DH_PRIVATE_VALUE_VALUE01[] = {
348 	0x53, 0x8d, 0x3d, 0x64, 0x27, 0x4a, 0x40, 0x05,
349 	0x9b, 0x9c, 0x26, 0xe9, 0x13, 0xe6, 0x91, 0x53,
350 	0x23, 0x7b, 0x55, 0x83,
351 };
352 
353 static const uint8_t TEE_ATTR_DH_PUBLIC_VALUE_2048_VALUE01[] = {
354 	0xb4, 0x0d, 0x9a, 0x68, 0x60, 0xc3, 0x0f, 0x0c, 0x2a, 0xd3, 0x30, 0x4f, 0x4b, 0x54, 0x81, 0x26,
355 	0xb9, 0xba, 0x58, 0x3c, 0xeb, 0x77, 0x45, 0xe1, 0x10, 0xc6, 0xfa, 0xce, 0xb9, 0xc6, 0x91, 0x55,
356 	0x21, 0x3b, 0xea, 0x8a, 0x86, 0xcd, 0x5b, 0x9f, 0xc1, 0x9f, 0x64, 0xcc, 0x0d, 0x66, 0xfe, 0x33,
357 	0x21, 0x28, 0xbc, 0x7f, 0xfe, 0xaf, 0xd3, 0x18, 0x8c, 0x52, 0x73, 0xb4, 0xe7, 0xba, 0x50, 0x5e,
358 	0x98, 0x1e, 0xac, 0x7d, 0xb5, 0xf1, 0x2a, 0xd9, 0x50, 0x47, 0xfb, 0x6f, 0x1e, 0x34, 0xaa, 0x9d,
359 	0xff, 0x31, 0x20, 0xb8, 0x55, 0x0f, 0xc5, 0x71, 0xb9, 0x34, 0x9f, 0x23, 0x39, 0xcd, 0x96, 0xde,
360 	0x9c, 0x11, 0x9d, 0x0e, 0x6b, 0xe1, 0x0f, 0x69, 0x0a, 0x77, 0xc7, 0x5a, 0xed, 0xc5, 0x2a, 0x95,
361 	0x90, 0xc7, 0x92, 0x94, 0xf8, 0x03, 0x81, 0xaa, 0xfc, 0x34, 0x3c, 0xec, 0x6b, 0x62, 0x4d, 0x03,
362 	0x7a, 0x6a, 0x7c, 0x92, 0xf7, 0x2c, 0x38, 0x84, 0x33, 0x7e, 0xf3, 0xfd, 0xae, 0x20, 0xb0, 0xc6,
363 	0x60, 0x76, 0x53, 0x60, 0xf3, 0x77, 0x50, 0x96, 0x0d, 0xbc, 0x40, 0xe4, 0x99, 0xfc, 0xe5, 0x79,
364 	0xda, 0x3b, 0x65, 0x98, 0xfe, 0x28, 0x68, 0x68, 0xc6, 0x87, 0xbb, 0xc8, 0x12, 0x7c, 0x1d, 0x0b,
365 	0x42, 0xe9, 0xb4, 0x6c, 0xd9, 0x1b, 0x23, 0xba, 0x34, 0x59, 0x3b, 0x86, 0x60, 0x45, 0xb6, 0x25,
366 	0x48, 0x53, 0x7c, 0xc7, 0xf8, 0x24, 0xb8, 0xf6, 0x71, 0xb5, 0x42, 0x98, 0xde, 0x8c, 0x6e, 0x61,
367 	0x7e, 0x1b, 0xf9, 0xab, 0x52, 0x4f, 0x03, 0xd1, 0xde, 0x30, 0xb4, 0x85, 0xa7, 0x3b, 0x97, 0xda,
368 	0x97, 0x5f, 0xbe, 0x8a, 0xd6, 0x2e, 0x19, 0x91, 0x29, 0xb4, 0x66, 0x6d, 0x03, 0x73, 0x43, 0xbe,
369 	0x13, 0x47, 0x82, 0x20, 0x80, 0x21, 0xf2, 0x3e, 0xbc, 0x66, 0xa6, 0x07, 0x38, 0x71, 0x77, 0xe4,
370 };
371 
372 static const uint8_t TEE_ATTR_DH_PUBLIC_VALUE_VALUE01[] = {
373 	0xbb, 0xe9, 0x18, 0xdd, 0x4b, 0x2b, 0x94, 0x1b, 0x10, 0x0e, 0x88, 0x35, 0x28, 0x68, 0xfc, 0x62,
374 	0x04, 0x38, 0xa6, 0xdb, 0x32, 0xa6, 0x9e, 0xee, 0x6c, 0x6f, 0x45, 0x1c, 0xa3, 0xa6, 0xd5, 0x37,
375 	0x77, 0x75, 0x5b, 0xc1, 0x37, 0x0a, 0xce, 0xfe, 0x2b, 0x8f, 0x13, 0xa9, 0x14, 0x2c, 0x5b, 0x44,
376 	0x15, 0x78, 0x86, 0x30, 0xd6, 0x95, 0xb1, 0x92, 0x20, 0x63, 0xa3, 0xcf, 0x9d, 0xef, 0x65, 0x61,
377 	0x27, 0x4d, 0x24, 0x01, 0xe7, 0xa1, 0x45, 0xf2, 0xd8, 0xb9, 0x3a, 0x45, 0x17, 0xf4, 0x19, 0xd0,
378 	0x5e, 0xf8, 0xcb, 0x35, 0x59, 0x37, 0x9d, 0x04, 0x20, 0xa3, 0xbf, 0x02, 0xad, 0xfe, 0xa8, 0x60,
379 	0xb2, 0xc3, 0xee, 0x85, 0x58, 0x90, 0xf3, 0xb5, 0x57, 0x2b, 0xb4, 0xef, 0xd7, 0x8f, 0x37, 0x68,
380 	0x78, 0x7c, 0x71, 0x52, 0x9d, 0x5e, 0x0a, 0x61, 0x4f, 0x09, 0x89, 0x92, 0x39, 0xf7, 0x4b, 0x01,
381 };
382 
383 static const uint8_t TEE_ATTR_DH_PUBLIC_VALUE_VALUE02[] = {
384 	0xa3, 0xf5, 0x7d, 0xbe, 0x9e, 0x2f, 0x0a, 0xda, 0xa9, 0x4e, 0x4e, 0x6a, 0xf0, 0xe0, 0x71, 0x47,
385 	0x0e, 0x2e, 0x41, 0x2e, 0xde, 0x73, 0x2a, 0x62, 0x14, 0xc3, 0x7c, 0x26, 0xd4, 0xe9, 0x9a, 0x54,
386 	0xba, 0x3d, 0xe7, 0x49, 0x85, 0x95, 0x0e, 0xe9, 0x14, 0xb2, 0x90, 0x22, 0x91, 0xdc, 0xff, 0x61,
387 	0xb2, 0xfc, 0xd1, 0xd0, 0x1b, 0x11, 0x14, 0xb6, 0x02, 0x64, 0x2b, 0x26, 0x5d, 0x88, 0xea, 0x8d,
388 	0xbb, 0xe2, 0x07, 0x0b, 0x48, 0xfb, 0x01, 0x53, 0x55, 0x1e, 0x59, 0x51, 0x36, 0xf2, 0xf9, 0xd1,
389 	0x97, 0xfb, 0x66, 0x12, 0x84, 0x5d, 0xed, 0xb8, 0x9b, 0x2d, 0x3e, 0x2b, 0x8c, 0xeb, 0x2a, 0x72,
390 	0x40, 0x9d, 0x55, 0x4c, 0xed, 0xeb, 0x55, 0x02, 0xff, 0x8c, 0xb0, 0x2e, 0x03, 0x65, 0x3f, 0x41,
391 	0xb1, 0xac, 0xa3, 0x30, 0x6b, 0xff, 0x6d, 0xf4, 0x6d, 0xe6, 0xe1, 0x0f, 0x86, 0x7c, 0x43, 0x64,
392 };
393 
394 static const uint8_t TEE_ATTR_DH_SUBPRIME_VALUE01[] = {
395 	0x84, 0xbb, 0x73, 0xca, 0x02, 0xa8, 0x6e, 0x8b,
396 	0xef, 0x44, 0x72, 0x06, 0xe0, 0xbe, 0xd2, 0x0e,
397 	0xeb, 0x47, 0x9f, 0x4d,
398 };
399 
400 static const uint8_t TEE_ATTR_DSA_BASE_2048_VALUE01[] = {
401 	0x20, 0x42, 0x09, 0x4c, 0xcb, 0xc8, 0xb8, 0x72, 0x3f, 0xc9, 0x28, 0xc1, 0x2f, 0xda, 0x67, 0x1b,
402 	0x83, 0x29, 0x5e, 0x99, 0xc7, 0x43, 0x57, 0x6f, 0x44, 0x50, 0x4b, 0xe1, 0x18, 0x63, 0x23, 0x31,
403 	0x9b, 0x50, 0x02, 0xd2, 0x4f, 0x17, 0x3d, 0xf9, 0x09, 0xea, 0x24, 0x1d, 0x6e, 0xa5, 0x28, 0x99,
404 	0x04, 0xee, 0x46, 0x36, 0x20, 0x4b, 0x2f, 0xbe, 0x94, 0xb0, 0x68, 0xfe, 0x09, 0x3f, 0x79, 0x62,
405 	0x57, 0x95, 0x49, 0x55, 0x1d, 0x3a, 0xf2, 0x19, 0xad, 0x8e, 0xd1, 0x99, 0x39, 0xef, 0xf8, 0x6b,
406 	0xce, 0xc8, 0x34, 0xde, 0x2f, 0x2f, 0x78, 0x59, 0x6e, 0x89, 0xe7, 0xcb, 0x52, 0xc5, 0x24, 0xe1,
407 	0x77, 0x09, 0x8a, 0x56, 0xc2, 0x32, 0xeb, 0x1f, 0x56, 0x3a, 0xa8, 0x4b, 0xc6, 0xb0, 0x26, 0xde,
408 	0xee, 0x6f, 0xf5, 0x1c, 0xb4, 0x41, 0xe0, 0x80, 0xf2, 0xda, 0xfa, 0xea, 0x1c, 0xed, 0x86, 0x42,
409 	0x7d, 0x1c, 0x34, 0x6b, 0xe5, 0x5c, 0x66, 0x80, 0x3d, 0x4b, 0x76, 0xd1, 0x33, 0xcd, 0x44, 0x5b,
410 	0x4c, 0x34, 0x82, 0xfa, 0x41, 0x50, 0x23, 0x46, 0x3c, 0x9b, 0xf3, 0x0f, 0x2f, 0x78, 0x42, 0x23,
411 	0xe2, 0x60, 0x57, 0xd3, 0xaa, 0x0d, 0x7f, 0xbb, 0x66, 0x06, 0x30, 0xc5, 0x2e, 0x49, 0xd4, 0xa0,
412 	0x32, 0x5c, 0x73, 0x89, 0xe0, 0x72, 0xaa, 0x34, 0x9f, 0x13, 0xc9, 0x66, 0xe1, 0x59, 0x75, 0x2f,
413 	0xbb, 0x71, 0xe9, 0x33, 0x68, 0x90, 0xf9, 0x32, 0x43, 0xfa, 0x6e, 0x72, 0xd2, 0x99, 0x36, 0x5e,
414 	0xe5, 0xb3, 0xfe, 0x26, 0x6e, 0xbf, 0x11, 0x10, 0x56, 0x8f, 0xee, 0x44, 0x25, 0xc8, 0x47, 0xb5,
415 	0x02, 0x10, 0xbd, 0x48, 0x4b, 0x97, 0x43, 0x1a, 0x42, 0x85, 0x6a, 0xdc, 0xa3, 0xe7, 0xd1, 0xa9,
416 	0xc9, 0xc6, 0x75, 0xc7, 0xe2, 0x66, 0x91, 0x83, 0x20, 0xdd, 0x5a, 0x78, 0xa4, 0x8c, 0x48, 0xa9,
417 };
418 
419 static const uint8_t TEE_ATTR_DSA_BASE_3072_VALUE01[] = {
420 	0x11, 0x0a, 0xfe, 0xbb, 0x12, 0xc7, 0xf8, 0x62, 0xb6, 0xde, 0x03, 0xd4, 0x7f, 0xdb, 0xc3, 0x32, 0x6e, 0x0d, 0x4d, 0x31, 0xb1, 0x2a, 0x8c, 0xa9,
421 	0x5b, 0x2d, 0xee, 0x21, 0x23, 0xbc, 0xc6, 0x67, 0xd4, 0xf7, 0x2c, 0x1e, 0x72, 0x09, 0x76, 0x7d, 0x27, 0x21, 0xf9, 0x5f, 0xbd, 0x9a, 0x4d, 0x03,
422 	0x23, 0x6d, 0x54, 0x17, 0x4f, 0xbf, 0xaf, 0xf2, 0xc4, 0xff, 0x7d, 0xea, 0xe4, 0x73, 0x8b, 0x20, 0xd9, 0xf3, 0x7b, 0xf0, 0xa1, 0x13, 0x4c, 0x28,
423 	0x8b, 0x42, 0x0a, 0xf0, 0xb5, 0x79, 0x2e, 0x47, 0xa9, 0x25, 0x13, 0xc0, 0x41, 0x3f, 0x34, 0x6a, 0x4e, 0xdb, 0xab, 0x2c, 0x45, 0xbd, 0xca, 0x13,
424 	0xf5, 0x34, 0x1c, 0x2b, 0x55, 0xb8, 0xba, 0x54, 0x93, 0x2b, 0x92, 0x17, 0xb5, 0xa8, 0x59, 0xe5, 0x53, 0xf1, 0x4b, 0xb8, 0xc1, 0x20, 0xfb, 0xb9,
425 	0xd9, 0x99, 0x09, 0xdf, 0xf5, 0xea, 0x68, 0xe1, 0x4b, 0x37, 0x99, 0x64, 0xfd, 0x3f, 0x38, 0x61, 0xe5, 0xba, 0x5c, 0xc9, 0x70, 0xc4, 0xa1, 0x80,
426 	0xee, 0xf5, 0x44, 0x28, 0x70, 0x39, 0x61, 0x02, 0x1e, 0x7b, 0xd6, 0x8c, 0xb6, 0x37, 0x92, 0x7b, 0x8c, 0xbe, 0xe6, 0x80, 0x5f, 0xa2, 0x72, 0x85,
427 	0xbf, 0xee, 0x4d, 0x1e, 0xf7, 0x0e, 0x02, 0xc1, 0xa1, 0x8a, 0x7c, 0xd7, 0x8b, 0xef, 0x1d, 0xd9, 0xcd, 0xad, 0x45, 0xdd, 0xe9, 0xcd, 0x69, 0x07,
428 	0x55, 0x05, 0x0f, 0xc4, 0x66, 0x29, 0x37, 0xee, 0x1d, 0x6f, 0x4d, 0xb1, 0x28, 0x07, 0xcc, 0xc9, 0x5b, 0xc4, 0x35, 0xf1, 0x1b, 0x71, 0xe7, 0x08,
429 	0x60, 0x48, 0xb1, 0xda, 0xb5, 0x91, 0x3c, 0x60, 0x55, 0x01, 0x2d, 0xe8, 0x2e, 0x43, 0xa4, 0xe5, 0x0c, 0xf9, 0x3f, 0xef, 0xf5, 0xdc, 0xab, 0x81,
430 	0x4a, 0xbc, 0x22, 0x4c, 0x5e, 0x00, 0x25, 0xbd, 0x86, 0x8c, 0x3f, 0xc5, 0x92, 0x04, 0x1b, 0xba, 0x04, 0x74, 0x7c, 0x10, 0xaf, 0x51, 0x3f, 0xc3,
431 	0x6e, 0x4d, 0x91, 0xc6, 0x3e, 0xe5, 0x25, 0x34, 0x22, 0xcf, 0x40, 0x63, 0x39, 0x8d, 0x77, 0xc5, 0x2f, 0xcb, 0x01, 0x14, 0x27, 0xcb, 0xfc, 0xfa,
432 	0x67, 0xb1, 0xb2, 0xc2, 0xd1, 0xaa, 0x4a, 0x3d, 0xa7, 0x26, 0x45, 0xcb, 0x1c, 0x76, 0x70, 0x36, 0x05, 0x4e, 0x2f, 0x31, 0xf8, 0x86, 0x65, 0xa5,
433 	0x44, 0x61, 0xc8, 0x85, 0xfb, 0x32, 0x19, 0xd5, 0xad, 0x87, 0x48, 0xa0, 0x11, 0x58, 0xf6, 0xc7, 0xc0, 0xdf, 0x5a, 0x8c, 0x90, 0x8b, 0xa8, 0xc3,
434 	0xe5, 0x36, 0x82, 0x24, 0x28, 0x88, 0x6c, 0x7b, 0x50, 0x0b, 0xbc, 0x15, 0xb4, 0x9d, 0xf7, 0x46, 0xb9, 0xde, 0x5a, 0x78, 0xfe, 0x3b, 0x4f, 0x69,
435 	0x91, 0xd0, 0x11, 0x0c, 0x3c, 0xbf, 0xf4, 0x58, 0x03, 0x9d, 0xc3, 0x62, 0x61, 0xcf, 0x46, 0xaf, 0x4b, 0xc2, 0x51, 0x53, 0x68, 0xf4, 0xab, 0xb7,
436 };
437 
438 static const uint8_t TEE_ATTR_DSA_BASE_768_VALUE01[] = {
439 	0x9a, 0x09, 0x32, 0xb3, 0x8c, 0xb2, 0x10, 0x5b, 0x93, 0x00, 0xdc, 0xb8, 0x66, 0xc0,
440 	0x66, 0xd9, 0xce, 0xc6, 0x43, 0x19, 0x2f, 0xcb, 0x28, 0x34, 0xa1, 0x23, 0x9d, 0xba, 0x28,
441 	0xbd, 0x09, 0xfe, 0x01, 0x00, 0x1e, 0x04, 0x51, 0xf9, 0xd6, 0x35, 0x1f, 0x6e, 0x56, 0x4a,
442 	0xfb, 0xc8, 0xf8, 0xc3, 0x9b, 0x10, 0x59, 0x86, 0x3e, 0xbd, 0x09, 0x85, 0x09, 0x0b, 0xd5,
443 	0x5c, 0x82, 0x8e, 0x9f, 0xc1, 0x57, 0xac, 0x7d, 0xa3, 0xcf, 0xc2, 0x89, 0x2a, 0x0e, 0xd9,
444 	0xb9, 0x32, 0x39, 0x05, 0x82, 0xf2, 0x97, 0x1e, 0x4a, 0x0c, 0x48, 0x3e, 0x06, 0x22, 0xd7,
445 	0x31, 0x66, 0xbf, 0x62, 0xa5, 0x9f, 0x26,
446 };
447 
448 static const uint8_t TEE_ATTR_DSA_PRIME_2048_VALUE01[] = {
449 	0xaa, 0x81, 0x5c, 0x9d, 0xb1, 0xc4, 0xd3, 0xd2, 0x77, 0x3c, 0x7d, 0x0d, 0x4d, 0x1d, 0xa7, 0x5e,
450 	0xcf, 0xc4, 0xa3, 0x9e, 0x97, 0xd5, 0xfa, 0x19, 0x1f, 0xfe, 0xc8, 0xb1, 0x49, 0x0a, 0x29, 0x0c,
451 	0xe3, 0x35, 0xe5, 0xce, 0x87, 0xea, 0x62, 0x0a, 0x8a, 0x17, 0xde, 0x0b, 0xb6, 0x47, 0x14, 0xe2,
452 	0xec, 0x84, 0x0b, 0xf0, 0x0e, 0x6e, 0xbd, 0xb4, 0xff, 0xb4, 0xe3, 0x24, 0xca, 0x07, 0xc3, 0xc8,
453 	0x71, 0x73, 0x09, 0xaf, 0x14, 0x10, 0x36, 0x2a, 0x77, 0x2c, 0x9a, 0xdd, 0x83, 0x8b, 0x2b, 0x0c,
454 	0xae, 0x1e, 0x90, 0xab, 0x44, 0x8a, 0xda, 0xbd, 0xac, 0xd2, 0xe5, 0xdf, 0x59, 0xc4, 0x18, 0x7a,
455 	0x32, 0xa2, 0x37, 0x19, 0xd6, 0xc5, 0x7e, 0x94, 0x00, 0x88, 0x53, 0x83, 0xbf, 0x8f, 0x06, 0x6f,
456 	0x23, 0xb9, 0x41, 0x92, 0x0d, 0x54, 0xc3, 0x5b, 0x4f, 0x7c, 0xc5, 0x04, 0x4f, 0x3b, 0x40, 0xf1,
457 	0x70, 0x46, 0x95, 0x63, 0x07, 0xb7, 0x48, 0xe8, 0x40, 0x73, 0x28, 0x44, 0xd0, 0x0a, 0x9c, 0xe6,
458 	0xec, 0x57, 0x14, 0x29, 0x3b, 0x62, 0x65, 0x14, 0x7f, 0x15, 0xc6, 0x7f, 0x4b, 0xe3, 0x8b, 0x08,
459 	0x2b, 0x55, 0xfd, 0xea, 0xdb, 0x61, 0x24, 0x68, 0x9f, 0xb7, 0x6f, 0x9d, 0x25, 0xcc, 0x28, 0xb8,
460 	0xea, 0xa9, 0x8b, 0x56, 0x2d, 0x5c, 0x10, 0x11, 0xe0, 0xdc, 0xf9, 0xb3, 0x99, 0x23, 0x24, 0x0d,
461 	0x33, 0x2d, 0x89, 0xdc, 0x96, 0x03, 0xb7, 0xbd, 0xdd, 0x0c, 0x70, 0xb8, 0x3c, 0xaa, 0x29, 0x05,
462 	0x63, 0x1b, 0x1c, 0x83, 0xca, 0xbb, 0xae, 0x6c, 0x0c, 0x0c, 0x2e, 0xfe, 0x8f, 0x58, 0x13, 0x1e,
463 	0xd8, 0x35, 0x1b, 0xf9, 0x3e, 0x87, 0x5f, 0x6a, 0x73, 0xa9, 0x3c, 0xba, 0xd4, 0x70, 0x14, 0x1a,
464 	0x26, 0x87, 0xfb, 0xac, 0xf2, 0xd7, 0x1c, 0x8d, 0xde, 0xe9, 0x71, 0xad, 0x66, 0x07, 0x29, 0xad,
465 };
466 
467 static const uint8_t TEE_ATTR_DSA_PRIME_3072_VALUE01[] = {
468 	0xc7, 0xb8, 0x6d, 0x70, 0x44, 0x21, 0x8e, 0x36, 0x74, 0x53, 0xd2, 0x10, 0xe7, 0x64, 0x33, 0xe4, 0xe2, 0x7a, 0x98, 0x3d, 0xb1, 0xc5, 0x60, 0xbb,
469 	0x97, 0x55, 0xa8, 0xfb, 0x7d, 0x81, 0x99, 0x12, 0xc5, 0x6c, 0xfe, 0x00, 0x2a, 0xb1, 0xff, 0x3f, 0x72, 0x16, 0x5b, 0x94, 0x3c, 0x0b, 0x28, 0xed,
470 	0x46, 0x03, 0x9a, 0x07, 0xde, 0x50, 0x7d, 0x7a, 0x29, 0xf7, 0x38, 0x60, 0x3d, 0xec, 0xd1, 0x27, 0x03, 0x80, 0xa4, 0x1f, 0x97, 0x1f, 0x25, 0x92,
471 	0x66, 0x1a, 0x64, 0xba, 0x2f, 0x35, 0x1d, 0x9a, 0x69, 0xe5, 0x1a, 0x88, 0x8a, 0x05, 0x15, 0x6b, 0x7f, 0xe1, 0x56, 0x3c, 0x4b, 0x77, 0xee, 0x93,
472 	0xa4, 0x49, 0x49, 0x13, 0x84, 0x38, 0xa2, 0xab, 0x8b, 0xdc, 0xfc, 0x49, 0xb4, 0xe7, 0x8d, 0x1c, 0xde, 0x76, 0x6e, 0x54, 0x98, 0x47, 0x60, 0x05,
473 	0x7d, 0x76, 0xcd, 0x74, 0x0c, 0x94, 0xa4, 0xdd, 0x25, 0xa4, 0x6a, 0xa7, 0x7b, 0x18, 0xe9, 0xd7, 0x07, 0xd6, 0x73, 0x84, 0x97, 0xd4, 0xea, 0xc3,
474 	0x64, 0xf4, 0x79, 0x2d, 0x97, 0x66, 0xa1, 0x6a, 0x0e, 0x23, 0x48, 0x07, 0xe9, 0x6b, 0x8c, 0x64, 0xd4, 0x04, 0xbb, 0xdb, 0x87, 0x6e, 0x39, 0xb5,
475 	0x79, 0x9e, 0xf5, 0x3f, 0xe6, 0xcb, 0x9b, 0xab, 0x62, 0xef, 0x19, 0xfd, 0xcc, 0x2b, 0xdd, 0x90, 0x5b, 0xed, 0xa1, 0x3b, 0x9e, 0xf7, 0xac, 0x35,
476 	0xf1, 0xf5, 0x57, 0xcb, 0x0d, 0xc4, 0x58, 0xc0, 0x19, 0xe2, 0xbc, 0x19, 0xa9, 0xf5, 0xdf, 0xc1, 0xe4, 0xec, 0xa9, 0xe6, 0xd4, 0x66, 0x56, 0x41,
477 	0x24, 0x30, 0x4a, 0x31, 0xf0, 0x38, 0x60, 0x5a, 0x3e, 0x34, 0x2d, 0xa0, 0x1b, 0xe1, 0xc2, 0xb5, 0x45, 0x61, 0x0e, 0xdd, 0x2c, 0x13, 0x97, 0xa3,
478 	0xc8, 0x39, 0x65, 0x88, 0xc6, 0x32, 0x9e, 0xfe, 0xb4, 0xe1, 0x65, 0xaf, 0x5b, 0x36, 0x8a, 0x39, 0xa8, 0x8e, 0x48, 0x88, 0xe3, 0x9f, 0x40, 0xbb,
479 	0x3d, 0xe4, 0xeb, 0x14, 0x16, 0x67, 0x2f, 0x99, 0x9f, 0xea, 0xd3, 0x7a, 0xef, 0x1c, 0xa9, 0x64, 0x3f, 0xf3, 0x2c, 0xdb, 0xc0, 0xfc, 0xeb, 0xe6,
480 	0x28, 0xd7, 0xe4, 0x6d, 0x28, 0x1a, 0x98, 0x9d, 0x43, 0xdd, 0x21, 0x43, 0x21, 0x51, 0xaf, 0x68, 0xbe, 0x3f, 0x6d, 0x56, 0xac, 0xfb, 0xdb, 0x6c,
481 	0x97, 0xd8, 0x7f, 0xcb, 0x5e, 0x62, 0x91, 0xbf, 0x8b, 0x4e, 0xe1, 0x27, 0x5a, 0xe0, 0xeb, 0x43, 0x83, 0xcc, 0x75, 0x39, 0x03, 0xc8, 0xd2, 0x9f,
482 	0x4a, 0xdb, 0x6a, 0x54, 0x7e, 0x40, 0x5d, 0xec, 0xdf, 0xf2, 0x88, 0xc5, 0xf6, 0xc7, 0xaa, 0x30, 0xdc, 0xb1, 0x2f, 0x84, 0xd3, 0x92, 0x49, 0x3a,
483 	0x70, 0x93, 0x33, 0x17, 0xc0, 0xf5, 0xe6, 0x55, 0x26, 0x01, 0xfa, 0xe1, 0x8f, 0x17, 0xe6, 0xe5, 0xbb, 0x6b, 0xf3, 0x96, 0xd3, 0x2d, 0x8a, 0xb9,
484 };
485 
486 static const uint8_t TEE_ATTR_DSA_PRIME_768_VALUE01[] = {
487 	0xf6, 0xad, 0x20, 0x71, 0xe1, 0x5a, 0x4b, 0x9c, 0x2b, 0x7e, 0x53, 0x26, 0xda, 0x43,
488 	0x9d, 0xc1, 0x47, 0x4c, 0x1a, 0xd1, 0x6f, 0x2f, 0x85, 0xe9, 0x2c, 0xea, 0x89, 0xfc, 0xdc,
489 	0x74, 0x66, 0x11, 0xcf, 0x30, 0xdd, 0xc8, 0x5e, 0x33, 0xf5, 0x83, 0xc1, 0x9d, 0x10, 0xbc,
490 	0x1a, 0xc3, 0x93, 0x22, 0x26, 0x24, 0x6f, 0xa7, 0xb9, 0xe0, 0xdd, 0x25, 0x77, 0xb5, 0xf4,
491 	0x27, 0x59, 0x4c, 0x39, 0xfa, 0xeb, 0xfc, 0x59, 0x8a, 0x32, 0xe1, 0x74, 0xcb, 0x8a, 0x68,
492 	0x03, 0x57, 0xf8, 0x62, 0xf2, 0x0b, 0x6e, 0x84, 0x32, 0xa5, 0x30, 0x65, 0x2f, 0x1c, 0x21,
493 	0x39, 0xae, 0x1f, 0xaf, 0x76, 0x8b, 0x83,
494 };
495 
496 static const uint8_t TEE_ATTR_DSA_PRIVATE_VALUE_160_VALUE01[] = {
497 	0x70, 0x4a, 0x46, 0xc6, 0x25, 0x2a, 0x95, 0xa3, 0x9b, 0x40, 0xe0, 0x43, 0x5a, 0x69, 0x1b,
498 	0xad, 0xae, 0x52, 0xa5, 0xc0,
499 };
500 
501 static const uint8_t TEE_ATTR_DSA_PRIVATE_VALUE_224_VALUE01[] = {
502 	0x7b, 0x48, 0x90, 0x21, 0x57, 0x8e, 0x79, 0xe7, 0xbd, 0x3e, 0xe7, 0xab, 0x45, 0x6f,
503 	0x65, 0x9f, 0x3d, 0xc0, 0x7c, 0x88, 0xf5, 0xc9, 0xa3, 0x9e, 0x4f, 0x8c, 0xee, 0x81,
504 };
505 
506 static const uint8_t TEE_ATTR_DSA_PRIVATE_VALUE_256_VALUE01[] = {
507 	0x34, 0x70, 0x83, 0x20, 0x55, 0xda, 0xde, 0x94, 0xe1, 0x4c, 0xd8, 0x77, 0x71, 0x71, 0xd1, 0x8e,
508 	0x5d, 0x06, 0xf6, 0x6a, 0xef, 0xf4, 0xc6, 0x14, 0x71, 0xe4, 0xeb, 0xa7, 0x4e, 0xe5, 0x61, 0x64,
509 };
510 
511 static const uint8_t TEE_ATTR_DSA_PUBLIC_VALUE_2048_VALUE01[] = {
512 	0x1a, 0xe1, 0x0c, 0x78, 0x6a, 0xd0, 0x90, 0x2c, 0x5c, 0x68, 0x5d, 0xae, 0x5c, 0x71, 0x21, 0x41,
513 	0x8a, 0x37, 0x7b, 0x88, 0x8b, 0x5f, 0x2f, 0x2b, 0xc7, 0x66, 0x23, 0x57, 0x0f, 0xd6, 0x2b, 0xcb,
514 	0x19, 0x0b, 0x47, 0x1a, 0xd5, 0x35, 0x9c, 0x5f, 0x06, 0x2f, 0x88, 0x19, 0x28, 0x9e, 0x95, 0x6d,
515 	0x8a, 0xa6, 0xf9, 0x0d, 0x1f, 0x8c, 0xf1, 0xee, 0x72, 0xd3, 0xa1, 0xbd, 0xfd, 0x56, 0xc4, 0x78,
516 	0xdc, 0x29, 0xa1, 0x9c, 0x45, 0x69, 0xb5, 0xa6, 0x0e, 0x3a, 0x8f, 0x34, 0xf6, 0x06, 0x56, 0xea,
517 	0xc5, 0xb2, 0x5d, 0xde, 0x55, 0x14, 0xa5, 0xc6, 0x7b, 0x67, 0x54, 0x23, 0x20, 0x4f, 0x6c, 0xca,
518 	0xf0, 0x99, 0x06, 0x17, 0xcc, 0x73, 0x55, 0xb9, 0xd3, 0xed, 0x86, 0x89, 0x78, 0xa2, 0x52, 0x02,
519 	0x0a, 0x76, 0x9e, 0xd5, 0x9a, 0x6e, 0xda, 0xa6, 0xef, 0xe3, 0x37, 0x7e, 0xef, 0x45, 0xf3, 0xf6,
520 	0xf3, 0xe6, 0x41, 0x79, 0xcc, 0x7d, 0xb8, 0xb1, 0x43, 0xfb, 0x83, 0x5c, 0x5d, 0x71, 0xbf, 0xcf,
521 	0xa1, 0xe2, 0xa9, 0x04, 0x9b, 0xcc, 0xf7, 0xfe, 0x9a, 0xb5, 0x75, 0x46, 0x22, 0x0f, 0xe3, 0xf4,
522 	0xb7, 0x52, 0x1c, 0x86, 0x17, 0x39, 0xd1, 0x38, 0x50, 0x7e, 0x81, 0xa4, 0x6a, 0x69, 0x93, 0x60,
523 	0x54, 0x41, 0xdc, 0xb9, 0x0d, 0x6e, 0xe4, 0xaf, 0xbc, 0x42, 0xca, 0xbe, 0x90, 0xa2, 0x54, 0x44,
524 	0x49, 0x68, 0x10, 0x9d, 0x7e, 0xdd, 0x96, 0x94, 0xa0, 0x23, 0x23, 0x9f, 0x1d, 0x56, 0x17, 0x5d,
525 	0xd1, 0xfa, 0xc1, 0x15, 0x91, 0x5e, 0x24, 0xfa, 0xb5, 0x63, 0xf4, 0xfc, 0x3f, 0x26, 0x9b, 0xed,
526 	0x2f, 0x30, 0x08, 0x32, 0xd1, 0x12, 0x59, 0x64, 0x85, 0xa7, 0x11, 0x41, 0x7a, 0xa7, 0x3b, 0xb4,
527 	0xac, 0x72, 0xa6, 0x51, 0xa1, 0xfa, 0x5b, 0xae, 0xd3, 0x63, 0x6c, 0x72, 0x0d, 0x39, 0x70, 0x08,
528 };
529 
530 static const uint8_t TEE_ATTR_DSA_PUBLIC_VALUE_3072_VALUE01[] = {
531 	0x45, 0x6a, 0x10, 0x5c, 0x71, 0x35, 0x66, 0x23, 0x48, 0x38, 0xbc, 0x07, 0x0b, 0x8a, 0x75, 0x1a, 0x0b, 0x57, 0x76, 0x7c, 0xb7, 0x5e, 0x99, 0x11,
532 	0x4a, 0x1a, 0x46, 0x64, 0x1e, 0x11, 0xda, 0x1f, 0xa9, 0xf2, 0x29, 0x14, 0xd8, 0x08, 0xad, 0x71, 0x48, 0x61, 0x2c, 0x1e, 0xa5, 0x5d, 0x25, 0x30,
533 	0x17, 0x81, 0xe9, 0xae, 0x0c, 0x9a, 0xe3, 0x6a, 0x69, 0xd8, 0x7b, 0xa0, 0x39, 0xec, 0x7c, 0xd8, 0x64, 0xc3, 0xad, 0x09, 0x48, 0x73, 0xe6, 0xe5,
534 	0x67, 0x09, 0xfd, 0x10, 0xd9, 0x66, 0x85, 0x3d, 0x61, 0x1b, 0x1c, 0xff, 0x15, 0xd3, 0x7f, 0xde, 0xe4, 0x24, 0x50, 0x6c, 0x18, 0x4d, 0x62, 0xc7,
535 	0x03, 0x33, 0x58, 0xbe, 0x78, 0xc2, 0x25, 0x09, 0x43, 0xb6, 0xf6, 0xd0, 0x43, 0xd6, 0x3b, 0x31, 0x7d, 0xe5, 0x6e, 0x5a, 0xd8, 0xd1, 0xfd, 0x97,
536 	0xdd, 0x35, 0x5a, 0xbe, 0x96, 0x45, 0x2f, 0x8e, 0x43, 0x54, 0x85, 0xfb, 0x3b, 0x90, 0x7b, 0x51, 0x90, 0x0a, 0xa3, 0xf2, 0x44, 0x18, 0xdf, 0x50,
537 	0xb4, 0xfc, 0xda, 0xfb, 0xf6, 0x13, 0x75, 0x48, 0xc3, 0x93, 0x73, 0xb8, 0xbc, 0x4b, 0xa3, 0xda, 0xbb, 0x47, 0x46, 0xeb, 0xd1, 0x7b, 0x87, 0xfc,
538 	0xd6, 0xa2, 0xf1, 0x97, 0xc1, 0x07, 0xb1, 0x8e, 0xc5, 0xb4, 0x65, 0xe6, 0xe4, 0xcb, 0x43, 0x0d, 0x9c, 0x0c, 0xe7, 0x8d, 0xa5, 0x98, 0x84, 0x41,
539 	0x05, 0x4a, 0x37, 0x07, 0x92, 0xb7, 0x30, 0xda, 0x9a, 0xba, 0x41, 0xa3, 0x16, 0x9a, 0xf2, 0x61, 0x76, 0xf7, 0x4e, 0x6f, 0x7c, 0x0c, 0x9c, 0x9b,
540 	0x55, 0xb6, 0x2b, 0xbe, 0x7c, 0xe3, 0x8d, 0x46, 0x95, 0xd4, 0x81, 0x57, 0xe6, 0x60, 0xc2, 0xac, 0xb6, 0x3f, 0x48, 0x2f, 0x55, 0x41, 0x81, 0x50,
541 	0xe5, 0xfe, 0xe4, 0x3a, 0xce, 0x84, 0xc5, 0x40, 0xc3, 0xba, 0x76, 0x62, 0xae, 0x80, 0x83, 0x5c, 0x1a, 0x2d, 0x51, 0x89, 0x0e, 0xa9, 0x6b, 0xa2,
542 	0x06, 0x42, 0x7c, 0x41, 0xef, 0x8c, 0x38, 0xaa, 0x07, 0xd2, 0xa3, 0x65, 0xe7, 0xe5, 0x83, 0x80, 0xd8, 0xf4, 0x78, 0x2e, 0x22, 0xac, 0x21, 0x01,
543 	0xaf, 0x73, 0x2e, 0xe2, 0x27, 0x58, 0x33, 0x7b, 0x25, 0x36, 0x37, 0x83, 0x8e, 0x16, 0xf5, 0x0f, 0x56, 0xd3, 0x13, 0xd0, 0x79, 0x81, 0x88, 0x0d,
544 	0x68, 0x55, 0x57, 0xf7, 0xd7, 0x9a, 0x6d, 0xb8, 0x23, 0xc6, 0x1f, 0x1b, 0xb3, 0xdb, 0xc5, 0xd5, 0x04, 0x21, 0xa4, 0x84, 0x3a, 0x6f, 0x29, 0x69,
545 	0x0e, 0x78, 0xaa, 0x0f, 0x0c, 0xff, 0x30, 0x42, 0x31, 0x81, 0x8b, 0x81, 0xfc, 0x4a, 0x24, 0x3f, 0xc0, 0x0f, 0x09, 0xa5, 0x4c, 0x46, 0x6d, 0x6a,
546 	0x8c, 0x73, 0xd3, 0x2a, 0x55, 0xe1, 0xab, 0xd5, 0xec, 0x8b, 0x4e, 0x1a, 0xfa, 0x32, 0xa7, 0x9b, 0x01, 0xdf, 0x85, 0xa8, 0x1f, 0x3f, 0x5c, 0xfe,
547 };
548 
549 static const uint8_t TEE_ATTR_DSA_PUBLIC_VALUE_768_VALUE01[] = {
550 	0x52, 0x9d, 0xed, 0x98, 0xa2, 0x32, 0x09, 0x85, 0xfc, 0x84, 0xb6, 0x5a, 0x9d, 0xc8, 0xd4,
551 	0xfe, 0x41, 0xad, 0xa6, 0xe3, 0x59, 0x3d, 0x70, 0x4f, 0x08, 0x98, 0xc1, 0x4e, 0xc2, 0x46,
552 	0x34, 0xdd, 0xf5, 0xf1, 0xdb, 0x47, 0xcc, 0x49, 0x15, 0xfc, 0xe1, 0xe2, 0x67, 0x4d, 0x2e,
553 	0xcd, 0x98, 0xd5, 0x8b, 0x59, 0x8e, 0x8d, 0xdf, 0xaf, 0xf3, 0x0e, 0x88, 0x26, 0xf5, 0x0a,
554 	0xab, 0x40, 0x27, 0xb5, 0xaa, 0xb8, 0x87, 0xc1, 0x9a, 0xd9, 0x6d, 0x7e, 0x57, 0xde, 0x53,
555 	0x90, 0xad, 0x8e, 0x55, 0x57, 0xb4, 0x1a, 0x80, 0x19, 0xc9, 0x0d, 0x80, 0x60, 0x71, 0x79,
556 	0xb5, 0x4e, 0xb0, 0xad, 0x4d, 0x23,
557 };
558 
559 static const uint8_t TEE_ATTR_DSA_SUBPRIME_160_VALUE01[] = {
560 	0x87, 0x44, 0xe4, 0xdd, 0xc6, 0xd0, 0x19, 0xa5, 0xea, 0xc2, 0xb1, 0x5a, 0x15, 0xd7,
561 	0xe1, 0xc7, 0xf6, 0x63, 0x35, 0xf7,
562 };
563 
564 static const uint8_t TEE_ATTR_DSA_SUBPRIME_224_VALUE01[] = {
565 	0xea, 0x34, 0x7e, 0x90, 0xbe, 0x7c, 0x28, 0x75, 0xd1, 0xfe, 0x1d, 0xb6, 0x22, 0xb4,
566 	0x76, 0x38, 0x37, 0xc5, 0xe2, 0x7a, 0x60, 0x37, 0x31, 0x03, 0x48, 0xc1, 0xaa, 0x11,
567 };
568 
569 static const uint8_t TEE_ATTR_DSA_SUBPRIME_256_VALUE01[] = {
570 	0x87, 0x6f, 0xa0, 0x9e, 0x1d, 0xc6, 0x2b, 0x23, 0x6c, 0xe1, 0xc3, 0x15, 0x5b, 0xa4, 0x8b, 0x0c,
571 	0xcf, 0xda, 0x29, 0xf3, 0xac, 0x5a, 0x97, 0xf7, 0xff, 0xa1, 0xbd, 0x87, 0xb6, 0x8d, 0x2a, 0x4b,
572 };
573 
574 static const uint8_t TEE_ATTR_ECC_PRIVATE_VALUE_ECDH_P192_VALUE01[] = {
575 	0xf1, 0x7d, 0x3f, 0xea, 0x36, 0x7b, 0x74, 0xd3, 0x40, 0x85, 0x1c, 0xa4, 0x27, 0x0d, 0xcb, 0x24, 0xc2, 0x71, 0xf4, 0x45, 0xbe, 0xd9, 0xd5, 0x27,
576 };
577 
578 static const uint8_t TEE_ATTR_ECC_PRIVATE_VALUE_ECDH_P224_VALUE01[] = {
579 	0x83, 0x46, 0xa6, 0x0f, 0xc6, 0xf2, 0x93, 0xca, 0x5a, 0x0d, 0x2a, 0xf6, 0x8b, 0xa7, 0x1d, 0x1d, 0xd3, 0x89, 0xe5, 0xe4, 0x08, 0x37, 0x94, 0x2d, 0xf3, 0xe4, 0x3c, 0xbd,
580 };
581 
582 static const uint8_t TEE_ATTR_ECC_PRIVATE_VALUE_ECDH_P256_VALUE01[] = {
583 	0x7d, 0x7d, 0xc5, 0xf7, 0x1e, 0xb2, 0x9d, 0xda, 0xf8, 0x0d, 0x62, 0x14, 0x63, 0x2e, 0xea, 0xe0,
584 	0x3d, 0x90, 0x58, 0xaf, 0x1f, 0xb6, 0xd2, 0x2e, 0xd8, 0x0b, 0xad, 0xb6, 0x2b, 0xc1, 0xa5, 0x34,
585 };
586 
587 static const uint8_t TEE_ATTR_ECC_PRIVATE_VALUE_ECDH_P384_VALUE01[] = {
588 	0x3c, 0xc3, 0x12, 0x2a, 0x68, 0xf0, 0xd9, 0x50, 0x27, 0xad, 0x38, 0xc0, 0x67, 0x91, 0x6b, 0xa0, 0xeb, 0x8c, 0x38, 0x89, 0x4d, 0x22, 0xe1, 0xb1,
589 	0x56, 0x18, 0xb6, 0x81, 0x8a, 0x66, 0x17, 0x74, 0xad, 0x46, 0x3b, 0x20, 0x5d, 0xa8, 0x8c, 0xf6, 0x99, 0xab, 0x4d, 0x43, 0xc9, 0xcf, 0x98, 0xa1,
590 };
591 
592 static const uint8_t TEE_ATTR_ECC_PRIVATE_VALUE_ECDH_P521_VALUE01[] = {
593 	0x00, 0x00, 0x01, 0x7e, 0xec, 0xc0, 0x7a, 0xb4, 0xb3, 0x29, 0x06, 0x8f, 0xba, 0x65, 0xe5, 0x6a, 0x1f,
594 	0x88, 0x90, 0xaa, 0x93, 0x5e, 0x57, 0x13, 0x4a, 0xe0, 0xff, 0xcc, 0xe8, 0x02, 0x73, 0x51, 0x51, 0xf4,
595 	0xea, 0xc6, 0x56, 0x4f, 0x6e, 0xe9, 0x97, 0x4c, 0x5e, 0x68, 0x87, 0xa1, 0xfe, 0xfe, 0xe5, 0x74, 0x3a,
596 	0xe2, 0x24, 0x1b, 0xfe, 0xb9, 0x5d, 0x5c, 0xe3, 0x1d, 0xdc, 0xb6, 0xf9, 0xed, 0xb4, 0xd6, 0xfc, 0x47,
597 };
598 
599 static const uint8_t TEE_ATTR_ECC_PRIVATE_VALUE_ECDSA_P192_VALUE01[] = {
600 	0xe1, 0x4f, 0x37, 0xb3, 0xd1, 0x37, 0x4f, 0xf8, 0xb0, 0x3f, 0x41, 0xb9, 0xb3, 0xfd, 0xd2, 0xf0, 0xeb, 0xcc, 0xf2, 0x75, 0xd6, 0x60, 0xd7, 0xf3,
601 };
602 
603 static const uint8_t TEE_ATTR_ECC_PRIVATE_VALUE_ECDSA_P224_VALUE01[] = {
604 	0x97, 0xc4, 0xb7, 0x96, 0xe1, 0x63, 0x9d, 0xd1, 0x03, 0x5b, 0x70, 0x8f, 0xc0, 0x0d, 0xc7, 0xba, 0x16, 0x82, 0xce, 0xc4, 0x4a, 0x10, 0x02, 0xa1, 0xa8, 0x20, 0x61, 0x9f,
605 };
606 
607 static const uint8_t TEE_ATTR_ECC_PRIVATE_VALUE_ECDSA_P256_VALUE01[] = {
608 	0xbe, 0x34, 0xba, 0xa8, 0xd0, 0x40, 0xa3, 0xb9, 0x91, 0xf9, 0x07, 0x5b, 0x56, 0xba, 0x29, 0x2f,
609 	0x75, 0x5b, 0x90, 0xe4, 0xb6, 0xdc, 0x10, 0xda, 0xd3, 0x67, 0x15, 0xc3, 0x3c, 0xfd, 0xac, 0x25,
610 };
611 
612 static const uint8_t TEE_ATTR_ECC_PRIVATE_VALUE_ECDSA_P384_VALUE01[] = {
613 	0xa4, 0x92, 0xce, 0x8f, 0xa9, 0x00, 0x84, 0xc2, 0x27, 0xe1, 0xa3, 0x2f, 0x79, 0x74, 0xd3, 0x9e, 0x9f, 0xf6, 0x7a, 0x7e, 0x87, 0x05, 0xec, 0x34,
614 	0x19, 0xb3, 0x5f, 0xb6, 0x07, 0x58, 0x2b, 0xeb, 0xd4, 0x61, 0xe0, 0xb1, 0x52, 0x0a, 0xc7, 0x6e, 0xc2, 0xdd, 0x4e, 0x9b, 0x63, 0xeb, 0xae, 0x71,
615 };
616 
617 static const uint8_t TEE_ATTR_ECC_PRIVATE_VALUE_ECDSA_P521_VALUE01[] = {
618 	0x01, 0xbd, 0x56, 0xbd, 0x10, 0x61, 0x18, 0xed, 0xa2, 0x46, 0x15, 0x5b, 0xd4, 0x3b, 0x42, 0xb8, 0xe1,
619 	0x3f, 0x0a, 0x6e, 0x25, 0xdd, 0x3b, 0xb3, 0x76, 0x02, 0x6f, 0xab, 0x4d, 0xc9, 0x2b, 0x61, 0x57, 0xbc,
620 	0x6d, 0xfe, 0xc2, 0xd1, 0x5d, 0xd3, 0xd0, 0xcf, 0x2a, 0x39, 0xaa, 0x68, 0x49, 0x40, 0x42, 0xaf, 0x48,
621 	0xba, 0x96, 0x01, 0x11, 0x8d, 0xa8, 0x2c, 0x6f, 0x21, 0x08, 0xa3, 0xa2, 0x03, 0xad, 0x74,
622 };
623 
624 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDH_P192_VALUE01[] = {
625 	0xb1, 0x50, 0x53, 0x40, 0x1f, 0x57, 0x28, 0x56, 0x37, 0xec, 0x32, 0x4c, 0x1c, 0xd2, 0x13, 0x9e, 0x3a, 0x67, 0xde, 0x37, 0x39, 0x23, 0x4b, 0x37,
626 };
627 
628 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDH_P192_VALUE02[] = {
629 	0x42, 0xea, 0x6d, 0xd9, 0x96, 0x9d, 0xd2, 0xa6, 0x1f, 0xea, 0x1a, 0xac, 0x7f, 0x8e, 0x98, 0xed,
630 	0xcc, 0x89, 0x6c, 0x6e, 0x55, 0x85, 0x7c, 0xc0,
631 };
632 
633 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDH_P224_VALUE01[] = {
634 	0x8d, 0xe2, 0xe2, 0x6a, 0xdf, 0x72, 0xc5, 0x82, 0xd6, 0x56, 0x8e, 0xf6, 0x38, 0xc4, 0xfd, 0x59, 0xb1, 0x8d, 0xa1, 0x71, 0xbd, 0xf5, 0x01, 0xf1, 0xd9, 0x29, 0xe0, 0x48,
635 };
636 
637 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDH_P224_VALUE02[] = {
638 	0xaf, 0x33, 0xcd, 0x06, 0x29, 0xbc, 0x7e, 0x99, 0x63, 0x20, 0xa3, 0xf4, 0x03, 0x68, 0xf7, 0x4d,
639 	0xe8, 0x70, 0x4f, 0xa3, 0x7b, 0x8f, 0xab, 0x69, 0xab, 0xaa, 0xe2, 0x80,
640 };
641 
642 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDH_P256_VALUE01[] = {
643 	0xea, 0xd2, 0x18, 0x59, 0x01, 0x19, 0xe8, 0x87, 0x6b, 0x29, 0x14, 0x6f, 0xf8, 0x9c, 0xa6, 0x17,
644 	0x70, 0xc4, 0xed, 0xbb, 0xf9, 0x7d, 0x38, 0xce, 0x38, 0x5e, 0xd2, 0x81, 0xd8, 0xa6, 0xb2, 0x30,
645 };
646 
647 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDH_P256_VALUE02[] = {
648 	0x70, 0x0c, 0x48, 0xf7, 0x7f, 0x56, 0x58, 0x4c, 0x5c, 0xc6, 0x32, 0xca, 0x65, 0x64, 0x0d, 0xb9,
649 	0x1b, 0x6b, 0xac, 0xce, 0x3a, 0x4d, 0xf6, 0xb4, 0x2c, 0xe7, 0xcc, 0x83, 0x88, 0x33, 0xd2, 0x87,
650 };
651 
652 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDH_P384_VALUE01[] = {
653 	0x98, 0x03, 0x80, 0x7f, 0x2f, 0x6d, 0x2f, 0xd9, 0x66, 0xcd, 0xd0, 0x29, 0x0b, 0xd4, 0x10, 0xc0, 0x19, 0x03, 0x52, 0xfb, 0xec, 0x7f, 0xf6, 0x24,
654 	0x7d, 0xe1, 0x30, 0x2d, 0xf8, 0x6f, 0x25, 0xd3, 0x4f, 0xe4, 0xa9, 0x7b, 0xef, 0x60, 0xcf, 0xf5, 0x48, 0x35, 0x5c, 0x01, 0x5d, 0xbb, 0x3e, 0x5f,
655 };
656 
657 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDH_P384_VALUE02[] = {
658 	0xa7, 0xc7, 0x6b, 0x97, 0x0c, 0x3b, 0x5f, 0xe8, 0xb0, 0x5d, 0x28, 0x38, 0xae, 0x04, 0xab, 0x47,
659 	0x69, 0x7b, 0x9e, 0xaf, 0x52, 0xe7, 0x64, 0x59, 0x2e, 0xfd, 0xa2, 0x7f, 0xe7, 0x51, 0x32, 0x72,
660 	0x73, 0x44, 0x66, 0xb4, 0x00, 0x09, 0x1a, 0xdb, 0xf2, 0xd6, 0x8c, 0x58, 0xe0, 0xc5, 0x00, 0x66,
661 };
662 
663 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDH_P521_VALUE01[] = {
664 	0x00, 0x00, 0x00, 0x60, 0x2f, 0x9d, 0x0c, 0xf9, 0xe5, 0x26, 0xb2, 0x9e, 0x22, 0x38, 0x1c, 0x20, 0x3c,
665 	0x48, 0xa8, 0x86, 0xc2, 0xb0, 0x67, 0x30, 0x33, 0x36, 0x63, 0x14, 0xf1, 0xff, 0xbc, 0xba, 0x24, 0x0b,
666 	0xa4, 0x2f, 0x4e, 0xf3, 0x8a, 0x76, 0x17, 0x46, 0x35, 0xf9, 0x1e, 0x6b, 0x4e, 0xd3, 0x42, 0x75, 0xeb,
667 	0x01, 0xc8, 0x46, 0x7d, 0x05, 0xca, 0x80, 0x31, 0x5b, 0xf1, 0xa7, 0xbb, 0xd9, 0x45, 0xf5, 0x50, 0xa5,
668 };
669 
670 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDH_P521_VALUE02[] = {
671 	0x00, 0x00, 0x00, 0x68, 0x5a, 0x48, 0xe8, 0x6c, 0x79, 0xf0, 0xf0, 0x87, 0x5f, 0x7b, 0xc1, 0x8d,
672 	0x25, 0xeb, 0x5f, 0xc8, 0xc0, 0xb0, 0x7e, 0x5d, 0xa4, 0xf4, 0x37, 0x0f, 0x3a, 0x94, 0x90, 0x34,
673 	0x08, 0x54, 0x33, 0x4b, 0x1e, 0x1b, 0x87, 0xfa, 0x39, 0x54, 0x64, 0xc6, 0x06, 0x26, 0x12, 0x4a,
674 	0x4e, 0x70, 0xd0, 0xf7, 0x85, 0x60, 0x1d, 0x37, 0xc0, 0x98, 0x70, 0xeb, 0xf1, 0x76, 0x66, 0x68,
675 	0x77, 0xa2, 0x04, 0x6d,
676 };
677 
678 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDSA_P192_VALUE01[] = {
679 	0x07, 0x00, 0x8e, 0xa4, 0x0b, 0x08, 0xdb, 0xe7, 0x64, 0x32, 0x09, 0x6e, 0x80, 0xa2, 0x49, 0x4c, 0x94, 0x98, 0x2d, 0x2d, 0x5b, 0xcf, 0x98, 0xe6,
680 };
681 
682 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDSA_P224_VALUE01[] = {
683 	0x8a, 0x4d, 0xca, 0x35, 0x13, 0x6c, 0x4b, 0x70, 0xe5, 0x88, 0xe2, 0x35, 0x54, 0x63, 0x7a, 0xe2, 0x51, 0x07, 0x7d, 0x13, 0x65, 0xa6, 0xba, 0x5d, 0xb9, 0x58, 0x5d, 0xe7,
684 };
685 
686 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDSA_P256_VALUE01[] = {
687 	0xfa, 0x27, 0x37, 0xfb, 0x93, 0x48, 0x8d, 0x19, 0xca, 0xef, 0x11, 0xae, 0x7f, 0xaf, 0x6b, 0x7f,
688 	0x4b, 0xcd, 0x67, 0xb2, 0x86, 0xe3, 0xfc, 0x54, 0xe8, 0xa6, 0x5c, 0x2b, 0x74, 0xae, 0xcc, 0xb0,
689 };
690 
691 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDSA_P384_VALUE01[] = {
692 	0xe5, 0x5f, 0xee, 0x6c, 0x49, 0xd8, 0xd5, 0x23, 0xf5, 0xce, 0x7b, 0xf9, 0xc0, 0x42, 0x5c, 0xe4, 0xff, 0x65, 0x07, 0x08, 0xb7, 0xde, 0x5c, 0xfb,
693 	0x09, 0x59, 0x01, 0x52, 0x39, 0x79, 0xa7, 0xf0, 0x42, 0x60, 0x2d, 0xb3, 0x08, 0x54, 0x73, 0x53, 0x69, 0x81, 0x3b, 0x5c, 0x3f, 0x5e, 0xf8, 0x68,
694 };
695 
696 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_X_ECDSA_P521_VALUE01[] = {
697 	0x01, 0x2f, 0xbc, 0xae, 0xff, 0xa6, 0xa5, 0x1f, 0x3e, 0xe4, 0xd3, 0xd2, 0xb5, 0x1c, 0x5d, 0xec, 0x6d,
698 	0x7c, 0x72, 0x6c, 0xa3, 0x53, 0xfc, 0x01, 0x4e, 0xa2, 0xbf, 0x7c, 0xfb, 0xb9, 0xb9, 0x10, 0xd3, 0x2c,
699 	0xbf, 0xa6, 0xa0, 0x0f, 0xe3, 0x9b, 0x6c, 0xdb, 0x89, 0x46, 0xf2, 0x27, 0x75, 0x39, 0x8b, 0x2e, 0x23,
700 	0x3c, 0x0c, 0xf1, 0x44, 0xd7, 0x8c, 0x8a, 0x77, 0x42, 0xb5, 0xc7, 0xa3, 0xbb, 0x5d, 0x23,
701 };
702 
703 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDH_P192_VALUE01[] = {
704 	0xf2, 0x69, 0xc1, 0x58, 0x63, 0x74, 0x82, 0xaa, 0xd6, 0x44, 0xcd, 0x69, 0x2d, 0xd1, 0xd3, 0xef, 0x2c, 0x8a, 0x7c, 0x49, 0xe3, 0x89, 0xf7, 0xf6,
705 };
706 
707 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDH_P192_VALUE02[] = {
708 	0xdf, 0xbe, 0x5d, 0x7c, 0x61, 0xfa, 0xc8, 0x8b, 0x11, 0x81, 0x1b, 0xde, 0x32, 0x8e, 0x8a, 0x0d,
709 	0x12, 0xbf, 0x01, 0xa9, 0xd2, 0x04, 0xb5, 0x23,
710 };
711 
712 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDH_P224_VALUE01[] = {
713 	0x4a, 0x68, 0xa1, 0xc2, 0xb0, 0xfb, 0x22, 0x93, 0x0d, 0x12, 0x05, 0x55, 0xc1, 0xec, 0xe5, 0x0e, 0xa9, 0x8d, 0xea, 0x84, 0x07, 0xf7, 0x1b, 0xe3, 0x6e, 0xfa, 0xc0, 0xde,
714 };
715 
716 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDH_P224_VALUE02[] = {
717 	0x88, 0x20, 0x92, 0xcc, 0xbb, 0xa7, 0x93, 0x0f, 0x41, 0x9a, 0x8a, 0x4f, 0x9b, 0xb1, 0x69, 0x78,
718 	0xbb, 0xc3, 0x83, 0x87, 0x29, 0x99, 0x25, 0x59, 0xa6, 0xf2, 0xe2, 0xd7,
719 };
720 
721 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDH_P256_VALUE01[] = {
722 	0x28, 0xaf, 0x61, 0x28, 0x1f, 0xd3, 0x5e, 0x2f, 0xa7, 0x00, 0x25, 0x23, 0xac, 0xc8, 0x5a, 0x42,
723 	0x9c, 0xb0, 0x6e, 0xe6, 0x64, 0x83, 0x25, 0x38, 0x9f, 0x59, 0xed, 0xfc, 0xe1, 0x40, 0x51, 0x41,
724 };
725 
726 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDH_P256_VALUE02[] = {
727 	0xdb, 0x71, 0xe5, 0x09, 0xe3, 0xfd, 0x9b, 0x06, 0x0d, 0xdb, 0x20, 0xba, 0x5c, 0x51, 0xdc, 0xc5,
728 	0x94, 0x8d, 0x46, 0xfb, 0xf6, 0x40, 0xdf, 0xe0, 0x44, 0x17, 0x82, 0xca, 0xb8, 0x5f, 0xa4, 0xac,
729 };
730 
731 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDH_P384_VALUE01[] = {
732 	0xba, 0x26, 0xca, 0x69, 0xec, 0x2f, 0x5b, 0x5d, 0x9d, 0xad, 0x20, 0xcc, 0x9d, 0xa7, 0x11, 0x38, 0x3a, 0x9d, 0xbe, 0x34, 0xea, 0x3f, 0xa5, 0xa2,
733 	0xaf, 0x75, 0xb4, 0x65, 0x02, 0x62, 0x9a, 0xd5, 0x4d, 0xd8, 0xb7, 0xd7, 0x3a, 0x8a, 0xbb, 0x06, 0xa3, 0xa3, 0xbe, 0x47, 0xd6, 0x50, 0xcc, 0x99,
734 };
735 
736 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDH_P384_VALUE02[] = {
737 	0xac, 0x68, 0xf1, 0x9f, 0x2e, 0x1c, 0xb8, 0x79, 0xae, 0xd4, 0x3a, 0x99, 0x69, 0xb9, 0x1a, 0x08,
738 	0x39, 0xc4, 0xc3, 0x8a, 0x49, 0x74, 0x9b, 0x66, 0x1e, 0xfe, 0xdf, 0x24, 0x34, 0x51, 0x91, 0x5e,
739 	0xd0, 0x90, 0x5a, 0x32, 0xb0, 0x60, 0x99, 0x2b, 0x46, 0x8c, 0x64, 0x76, 0x6f, 0xc8, 0x43, 0x7a,
740 };
741 
742 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDH_P521_VALUE01[] = {
743 	0x00, 0x00, 0x01, 0xb7, 0xc8, 0x5f, 0x26, 0xf5, 0xd4, 0xb2, 0xd7, 0x35, 0x5c, 0xf6, 0xb0, 0x21, 0x17,
744 	0x65, 0x99, 0x43, 0x76, 0x2b, 0x6d, 0x1d, 0xb5, 0xab, 0x4f, 0x1d, 0xbc, 0x44, 0xce, 0x7b, 0x29, 0x46,
745 	0xeb, 0x6c, 0x7d, 0xe3, 0x42, 0x96, 0x28, 0x93, 0xfd, 0x38, 0x7d, 0x1b, 0x73, 0xd7, 0xa8, 0x67, 0x2d,
746 	0x1f, 0x23, 0x69, 0x61, 0x17, 0x0b, 0x7e, 0xb3, 0x57, 0x99, 0x53, 0xee, 0x5c, 0xdc, 0x88, 0xcd, 0x2d,
747 };
748 
749 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDH_P521_VALUE02[] = {
750 	0x00, 0x00, 0x01, 0xba, 0x52, 0xc5, 0x6f, 0xc8, 0x77, 0x6d, 0x9e, 0x8f, 0x5d, 0xb4, 0xf0, 0xcc,
751 	0x27, 0x63, 0x6d, 0x0b, 0x74, 0x1b, 0xbe, 0x05, 0x40, 0x06, 0x97, 0x94, 0x2e, 0x80, 0xb7, 0x39,
752 	0x88, 0x4a, 0x83, 0xbd, 0xe9, 0x9e, 0x0f, 0x67, 0x16, 0x93, 0x9e, 0x63, 0x2b, 0xc8, 0x98, 0x6f,
753 	0xa1, 0x8d, 0xcc, 0xd4, 0x43, 0xa3, 0x48, 0xb6, 0xc3, 0xe5, 0x22, 0x49, 0x79, 0x55, 0xa4, 0xf3,
754 	0xc3, 0x02, 0xf6, 0x76,
755 };
756 
757 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDSA_P192_VALUE01[] = {
758 	0x76, 0xfa, 0xb6, 0x81, 0xd0, 0x0b, 0x41, 0x4e, 0xa6, 0x36, 0xba, 0x21, 0x5d, 0xe2, 0x6d, 0x98, 0xc4, 0x1b, 0xd7, 0xf2, 0xe4, 0xd6, 0x54, 0x77,
759 };
760 
761 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDSA_P224_VALUE01[] = {
762 	0xad, 0x3d, 0xee, 0x06, 0xde, 0x0b, 0xe8, 0x27, 0x9d, 0x4a, 0xf4, 0x35, 0xd7, 0x24, 0x5f, 0x14, 0xf3, 0xb4, 0xf8, 0x2e, 0xb5, 0x78, 0xe5, 0x19, 0xee, 0x00, 0x57, 0xb1,
763 };
764 
765 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDSA_P256_VALUE01[] = {
766 	0xd4, 0xcc, 0xd6, 0xda, 0xe6, 0x98, 0x20, 0x8a, 0xa8, 0xc3, 0xa6, 0xf3, 0x9e, 0x45, 0x51, 0x0d,
767 	0x03, 0xbe, 0x09, 0xb2, 0xf1, 0x24, 0xbf, 0xc0, 0x67, 0x85, 0x6c, 0x32, 0x4f, 0x9b, 0x4d, 0x09,
768 };
769 
770 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDSA_P384_VALUE01[] = {
771 	0x28, 0xf5, 0x9c, 0xc5, 0xdc, 0x50, 0x98, 0x92, 0xa9, 0x88, 0xd3, 0x8a, 0x8e, 0x25, 0x19, 0xde, 0x3d, 0x0c, 0x4f, 0xd0, 0xfb, 0xdb, 0x09, 0x93,
772 	0xe3, 0x8f, 0x18, 0x50, 0x6c, 0x17, 0x60, 0x6c, 0x5e, 0x24, 0x24, 0x92, 0x46, 0xf1, 0xce, 0x94, 0x98, 0x3a, 0x53, 0x61, 0xc5, 0xbe, 0x98, 0x3e,
773 };
774 
775 static const uint8_t TEE_ATTR_ECC_PUBLIC_VALUE_Y_ECDSA_P521_VALUE01[] = {
776 	0x00, 0x9c, 0xde, 0xf8, 0x23, 0xdd, 0x7b, 0xf9, 0xa7, 0x9e, 0x8c, 0xce, 0xac, 0xd2, 0xe4, 0x52, 0x7c,
777 	0x23, 0x1d, 0x0a, 0xe5, 0x96, 0x7a, 0xf0, 0x95, 0x8e, 0x93, 0x1d, 0x7d, 0xdc, 0xcf, 0x28, 0x05, 0xa3,
778 	0xe6, 0x18, 0xdc, 0x30, 0x39, 0xfe, 0xc9, 0xfe, 0xbb, 0xd3, 0x30, 0x52, 0xfe, 0x4c, 0x0f, 0xee, 0x98,
779 	0xf0, 0x33, 0x10, 0x60, 0x64, 0x98, 0x2d, 0x88, 0xf4, 0xe0, 0x35, 0x49, 0xd4, 0xa6, 0x4d,
780 };
781 
782 static const uint8_t TEE_ATTR_GENERIC_SECRET_2048_VALUE01[] = {
783 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
784 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
785 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
786 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
787 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
788 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
789 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
790 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
791 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
792 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
793 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
794 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
795 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
796 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
797 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
798 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
799 };
800 
801 static const uint8_t TEE_ATTR_HMAC_MD5_256_VALUE01[] = {
802 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
803 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
804 };
805 
806 static const uint8_t TEE_ATTR_HMAC_SHA1_256_VALUE01[] = {
807 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
808 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
809 };
810 
811 static const uint8_t TEE_ATTR_HMAC_SHA224_256_VALUE01[] = {
812 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
813 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
814 };
815 
816 static const uint8_t TEE_ATTR_HMAC_SHA256_512_VALUE01[] = {
817 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
818 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
819 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
820 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
821 };
822 
823 static const uint8_t TEE_ATTR_HMAC_SHA384_512_VALUE01[] = {
824 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
825 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
826 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
827 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
828 };
829 
830 static const uint8_t TEE_ATTR_HMAC_SHA512_512_VALUE01[] = {
831 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
832 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
833 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
834 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
835 };
836 
837 static const uint8_t TEE_ATTR_RSA_COEFFICIENT_VALUE01[] = {
838 	0x94, 0x65, 0xe9, 0xd0, 0x98, 0xf8, 0x9c, 0x30, 0x25, 0xa8, 0xb1, 0x53, 0x78, 0x61,
839 	0x01, 0x1f, 0xde, 0x48, 0x91, 0x92, 0x90, 0x11, 0x6c, 0x96, 0x27, 0xce, 0xe1, 0x8f, 0x7b,
840 	0x37, 0x53, 0x25, 0x89, 0xac, 0x2c, 0xa8, 0x09, 0x2b, 0xff, 0x70, 0x42, 0x2a, 0xca, 0xfb,
841 	0x83, 0x68, 0xca, 0x8f, 0xaf, 0x1b, 0xcd, 0x11, 0x20, 0xfb, 0x64, 0x74, 0x5a, 0x35, 0xdf,
842 	0x7d, 0x79, 0xed, 0x29, 0xe5, 0xf7, 0xd9, 0xba, 0x5d, 0x02, 0x19, 0xb7, 0x88, 0x74, 0x33,
843 	0x86, 0xcd, 0x5d, 0xc5, 0xa2, 0x89, 0x36, 0xbe, 0x9e, 0xe5, 0x84, 0xc8, 0x08, 0xca, 0xbc,
844 	0x85, 0xd1, 0x95, 0x18, 0xba, 0x0f, 0xac, 0x4a, 0xa1, 0x03, 0x84, 0xe3, 0xd3, 0x2d, 0x38,
845 	0x81, 0xb3, 0x11, 0x27, 0x97, 0x1d, 0x7e, 0x84, 0xe8, 0xa4, 0xc3, 0xb2, 0x75, 0xdf, 0x96,
846 	0x91, 0xe0, 0x81, 0xa6, 0x57, 0xe9, 0x74, 0x82, 0x88,
847 };
848 
849 static const uint8_t TEE_ATTR_RSA_EXPONENT1_VALUE01[] = {
850 	0x88, 0x14, 0x08, 0x30, 0x55, 0x6f, 0x85, 0x25, 0x7b, 0x61, 0xef, 0x47, 0xb5, 0xf6,
851 	0x69, 0x1a, 0xbc, 0x34, 0xcc, 0x80, 0x80, 0xf5, 0x35, 0x9b, 0x2e, 0x86, 0xb4, 0x3d, 0x3f,
852 	0x16, 0xb7, 0x18, 0x1f, 0x2f, 0xda, 0xd7, 0x27, 0x7c, 0x5e, 0x8d, 0x15, 0xde, 0x5e, 0x78,
853 	0xc0, 0xa6, 0x49, 0x94, 0x71, 0x4b, 0x97, 0x2e, 0x8c, 0xf4, 0x10, 0x66, 0x77, 0xbf, 0x78,
854 	0x31, 0xaf, 0xa7, 0xd0, 0x80, 0x3a, 0x73, 0x13, 0x56, 0xd4, 0x14, 0x04, 0x74, 0x46, 0x4e,
855 	0x91, 0x1d, 0xdc, 0x45, 0xa7, 0x7c, 0x00, 0x4b, 0x5d, 0x34, 0x70, 0xa0, 0x7f, 0x95, 0xb9,
856 	0xf2, 0x90, 0x76, 0x6b, 0x4d, 0x64, 0x1c, 0x94, 0x5b, 0x48, 0x2b, 0xdf, 0x37, 0x92, 0x2d,
857 	0x8d, 0x5e, 0x73, 0xf6, 0x89, 0x40, 0x2d, 0xed, 0x55, 0xd2, 0x40, 0x8f, 0x38, 0x82, 0x41,
858 	0x82, 0x64, 0xb2, 0xb4, 0xb0, 0xdf, 0xc7, 0x83, 0xc1,
859 };
860 
861 static const uint8_t TEE_ATTR_RSA_EXPONENT2_VALUE01[] = {
862 	0x40, 0x26, 0x13, 0xa7, 0x0f, 0x28, 0x79, 0x92, 0xb7, 0x88, 0xca, 0x91, 0x0a, 0xa2, 0xe5,
863 	0xd1, 0x74, 0xa4, 0xbe, 0x5f, 0x91, 0x8b, 0xa8, 0xff, 0xb9, 0x3d, 0x01, 0xce, 0x5a, 0xc9,
864 	0xfd, 0xde, 0xb0, 0xc6, 0x1f, 0x52, 0x08, 0xd7, 0x46, 0x9e, 0x3e, 0x1e, 0x82, 0xa5, 0x77,
865 	0x30, 0x75, 0xb0, 0x16, 0xb1, 0x09, 0xbf, 0x3f, 0x35, 0x9f, 0x3e, 0xcd, 0x74, 0x02, 0x4c,
866 	0x99, 0x69, 0xa2, 0x02, 0x39, 0x7c, 0x7d, 0xd8, 0xce, 0x92, 0xe9, 0xa9, 0x33, 0x0d, 0xe5,
867 	0x3e, 0x05, 0x3d, 0xd0, 0x2c, 0xf3, 0x4a, 0xaa, 0xdb, 0xbe, 0xef, 0xd5, 0x9f, 0x2b, 0xec,
868 	0xbf, 0xea, 0xff, 0x75, 0x2d, 0x6d, 0x23, 0x12, 0x8d, 0x53, 0xe2, 0xca, 0x7f, 0xdb, 0x0d,
869 	0xbb, 0xc6, 0x5e, 0x16, 0xd5, 0xb1, 0x62, 0x8e, 0x1b, 0xbf, 0xbf, 0x0e, 0x2c, 0xb5, 0xcf,
870 	0x54, 0x55, 0x22, 0x21, 0xde, 0x7d, 0xba, 0xb1,
871 };
872 
873 static const uint8_t TEE_ATTR_RSA_MODULUS_3072_VALUE01[] = {
874 	0xac, 0x6a, 0x77, 0xeb, 0xbf, 0x9c, 0x72, 0x5e, 0xc9, 0x73, 0x11, 0xf5, 0x4c, 0xd3, 0x5a, 0x4d, 0x98, 0xc4, 0x95, 0x82, 0x20, 0x13, 0x83, 0xcc,
875 	0x8c, 0xaf, 0x06, 0xde, 0x23, 0x3e, 0x8a, 0x64, 0x98, 0xcc, 0xa8, 0x1e, 0x57, 0x05, 0xff, 0x67, 0xc8, 0x78, 0x74, 0xcb, 0xa0, 0x07, 0x0c, 0x94,
876 	0xdc, 0xf7, 0x37, 0x0a, 0x13, 0xf4, 0x4c, 0x7b, 0xf6, 0xf3, 0x9e, 0x10, 0x39, 0xc0, 0xe7, 0x16, 0xf2, 0x1b, 0xb8, 0x1d, 0x23, 0x81, 0x15, 0xce,
877 	0x65, 0x19, 0x00, 0xc7, 0x62, 0x70, 0x86, 0xc6, 0xbc, 0x70, 0x47, 0xec, 0x8f, 0xc9, 0xf0, 0x27, 0x13, 0xdc, 0x7c, 0x6c, 0xb3, 0x53, 0x42, 0xcd,
878 	0xd3, 0xd0, 0x26, 0xb3, 0xe8, 0xe7, 0x35, 0x18, 0xe6, 0x57, 0xf2, 0xe1, 0x68, 0x35, 0x32, 0xa4, 0x8b, 0xfe, 0x3b, 0xbd, 0x55, 0x86, 0x95, 0x86,
879 	0x0c, 0x71, 0xfc, 0xd4, 0x4a, 0x27, 0x5e, 0x6d, 0x41, 0xd4, 0x02, 0xd5, 0xf0, 0x50, 0x40, 0x0a, 0x34, 0x02, 0xd3, 0xd5, 0xd4, 0xaa, 0xf9, 0x78,
880 	0x7d, 0xd7, 0x9a, 0x2d, 0x5c, 0x90, 0xa4, 0x3f, 0xd4, 0xcd, 0xf4, 0x3a, 0x48, 0xd0, 0xa5, 0x2b, 0x0b, 0x0d, 0xa5, 0xd3, 0xb1, 0xb5, 0x9c, 0xc2,
881 	0xab, 0xdd, 0xbc, 0xae, 0x0b, 0x8b, 0x1b, 0x02, 0xa2, 0xe2, 0xed, 0xba, 0xab, 0x93, 0x4e, 0x90, 0x30, 0x97, 0x60, 0xd6, 0x99, 0xec, 0xb9, 0x96,
882 	0x91, 0xd5, 0x1b, 0xbf, 0x06, 0x74, 0xa1, 0x45, 0xe6, 0xa3, 0x5b, 0x83, 0xa5, 0xad, 0x4a, 0xc3, 0x0d, 0xa4, 0x1b, 0x20, 0x52, 0x7d, 0x48, 0x1d,
883 	0x80, 0x3b, 0x2f, 0x77, 0xca, 0x0b, 0x1e, 0x18, 0x24, 0x33, 0x06, 0x87, 0xbb, 0x3c, 0x0a, 0x2a, 0x6c, 0x9e, 0xb7, 0x39, 0x5d, 0x26, 0x58, 0x5b,
884 	0x04, 0x8f, 0xc5, 0xde, 0x51, 0x8f, 0x3e, 0x5c, 0x2b, 0x96, 0x1f, 0xa9, 0x3d, 0x26, 0x5c, 0x45, 0x25, 0x9f, 0x2d, 0xb3, 0xbe, 0xff, 0xe5, 0xd1,
885 	0xf1, 0x2e, 0x0c, 0xc6, 0x74, 0x3f, 0x9b, 0x24, 0x39, 0x9b, 0x7c, 0x76, 0x4d, 0x88, 0xdb, 0x09, 0x30, 0x44, 0xbb, 0xad, 0x65, 0x82, 0x9b, 0xb6,
886 	0x1d, 0x21, 0xb1, 0x27, 0xb8, 0x7f, 0x90, 0x54, 0xee, 0xa0, 0x9c, 0x86, 0xb7, 0x56, 0x2d, 0x1c, 0x17, 0x3f, 0xa7, 0x3f, 0x72, 0x80, 0xc4, 0x9c,
887 	0x62, 0xdd, 0x0a, 0xa5, 0xcb, 0xfc, 0xf9, 0x47, 0xa5, 0xa5, 0x03, 0xb2, 0x96, 0x57, 0x6e, 0xef, 0xc0, 0xe6, 0x14, 0xcb, 0x59, 0x18, 0xb9, 0xf5,
888 	0xa6, 0xaa, 0x54, 0xb4, 0x8b, 0xf2, 0xe6, 0xbc, 0x87, 0x4c, 0x9d, 0x8c, 0x03, 0x1e, 0xe9, 0x81, 0x2f, 0x63, 0xd2, 0xfe, 0x88, 0x3f, 0x2f, 0x30,
889 	0x6a, 0xd1, 0xc5, 0x55, 0xd2, 0x1f, 0x29, 0x88, 0x2a, 0xf0, 0xb4, 0x73, 0x04, 0x60, 0xbb, 0x84, 0xab, 0xa7, 0x17, 0x2d, 0xbc, 0xe1, 0xa4, 0x49,
890 };
891 
892 static const uint8_t TEE_ATTR_RSA_MODULUS_FOR_FUZZING_RSAN[] = {
893 	0xa8, 0xb3, 0xb2, 0x84, 0xaf, 0x8e, 0xb5, 0x0b, 0x38, 0x70, 0x34, 0xa8, 0x60, 0xf1, 0x46, 0xc4, 0x91, 0x9f, 0x31, 0x87, 0x63, 0xcd, 0x6c, 0x55,
894 	0x98, 0xc8, 0xae, 0x48, 0x11, 0xa1, 0xe0, 0xab, 0xc4, 0xc7, 0xe0, 0xb0, 0x82, 0xd6, 0x93, 0xa5, 0xe7, 0xfc, 0xed, 0x67, 0x5c, 0xf4, 0x66, 0x85,
895 	0x12, 0x77, 0x2c, 0x0c, 0xbc, 0x64, 0xa7, 0x42, 0xc6, 0xc6, 0x30, 0xf5, 0x33, 0xc8, 0xcc, 0x72, 0xf6, 0x2a, 0xe8, 0x33, 0xc4, 0x0b, 0xf2, 0x58,
896 	0x42, 0xe9, 0x84, 0xbb, 0x78, 0xbd, 0xbf, 0x97, 0xc0, 0x10, 0x7d, 0x55, 0xbd, 0xb6, 0x62, 0xf5, 0xc4, 0xe0, 0xfa, 0xb9, 0x84, 0x5c, 0xb5, 0x14,
897 	0x8e, 0xf7, 0x39, 0x2d, 0xd3, 0xaa, 0xff, 0x93, 0xae, 0x1e, 0x6b, 0x66, 0x7b, 0xb3, 0xd4, 0x24, 0x76, 0x16, 0xd4, 0xf5, 0xba, 0x10, 0xd4, 0xcf,
898 	0xd2, 0x26, 0xde, 0x88, 0xd3, 0x9f, 0x16, 0xfb,
899 };
900 
901 static const uint8_t TEE_ATTR_RSA_MODULUS_VALUE01[] = {
902 	0xf0, 0x1a, 0x95, 0xcd, 0x5f, 0x9f, 0x1c, 0xbc, 0x5c, 0x2e, 0xc8, 0x00, 0x3b, 0xfa,
903 	0xe0, 0xd5, 0x72, 0xea, 0xfc, 0x9e, 0x74, 0xe1, 0x02, 0x66, 0xa8, 0x13, 0x3f, 0x0c, 0xe6,
904 	0x24, 0xcb, 0x1c, 0xa5, 0xdf, 0x64, 0xfb, 0x06, 0xd7, 0x13, 0xce, 0xaa, 0x6c, 0xee, 0x16,
905 	0x7b, 0xf8, 0x92, 0xaf, 0xc4, 0x5b, 0x46, 0x18, 0xc6, 0x30, 0xb6, 0x04, 0x1c, 0x3a, 0x2e,
906 	0xd7, 0xca, 0xb8, 0xb5, 0x00, 0x78, 0x89, 0xa0, 0x69, 0x37, 0x84, 0x59, 0x99, 0x0c, 0x2f,
907 	0x00, 0xe5, 0x3b, 0xe1, 0x18, 0xe0, 0xb9, 0x2e, 0x77, 0x1d, 0x32, 0x7e, 0x5f, 0xf4, 0x18,
908 	0xf3, 0x9f, 0x58, 0xc6, 0x83, 0xe2, 0x7a, 0xcb, 0x89, 0x18, 0xc2, 0x09, 0x84, 0x7e, 0x9d,
909 	0x96, 0xe0, 0xb9, 0x49, 0x75, 0xef, 0xcf, 0xff, 0xf0, 0xb6, 0x18, 0xd3, 0x7a, 0xc1, 0x6f,
910 	0x0c, 0x55, 0x33, 0xbe, 0x9d, 0x63, 0x06, 0xd6, 0x9f, 0xc1, 0xa5, 0xe9, 0xbd, 0xb1, 0xb2,
911 	0x5d, 0x5c, 0xf9, 0xab, 0xa9, 0xb5, 0x6a, 0x4e, 0xa4, 0xfa, 0x44, 0x32, 0xd6, 0x71, 0x2e,
912 	0x5f, 0xa6, 0x25, 0xf8, 0x40, 0x24, 0xc4, 0x5b, 0x61, 0x55, 0x1b, 0xac, 0xa3, 0x0a, 0x11,
913 	0x8e, 0x65, 0x20, 0xda, 0x2c, 0x0d, 0xdf, 0xdb, 0x47, 0x6b, 0x61, 0x18, 0x4d, 0xfe, 0xfd,
914 	0x2a, 0x7e, 0x77, 0x40, 0x44, 0x43, 0xc6, 0x33, 0x6c, 0xe5, 0x1b, 0x8d, 0x80, 0xf9, 0x97,
915 	0xa2, 0xe4, 0xb9, 0x34, 0x3e, 0x28, 0x94, 0x9f, 0xbd, 0xa8, 0x2b, 0x0a, 0x4d, 0x1a, 0xa8,
916 	0x06, 0xe5, 0x99, 0x4e, 0xb9, 0x13, 0x45, 0xc8, 0xf6, 0x0f, 0xd0, 0x4d, 0xbf, 0xe7, 0x8f,
917 	0xed, 0xca, 0x8e, 0xf8, 0x8d, 0x87, 0x5f, 0xd4, 0xb4, 0x1a, 0x2c, 0xc9, 0xa7, 0x67, 0x7e,
918 	0xb2, 0x1b, 0xc1, 0xce, 0xb6, 0x83, 0x7c, 0xce, 0xb4, 0x3d, 0x85, 0xc7, 0x53, 0x30, 0x7c,
919 	0xfe, 0x85,
920 };
921 
922 static const uint8_t TEE_ATTR_RSA_OAEP_LABEL_VALUE01[] = { 1 };
923 
924 static const uint8_t TEE_ATTR_RSA_PRIME1_VALUE01[] = {
925 	0xfe, 0x56, 0xe9, 0x8b, 0x84, 0xa4, 0x6f, 0x98, 0x45, 0xad, 0x05, 0xbc, 0x67, 0x04,
926 	0x5f, 0xae, 0x08, 0xdf, 0xe1, 0x8c, 0xcd, 0x49, 0x1d, 0x9d, 0x8e, 0x1e, 0x82, 0x47, 0x0c,
927 	0x3c, 0x70, 0x40, 0x2d, 0x61, 0xe7, 0xde, 0xd7, 0x6e, 0xb9, 0xeb, 0xf0, 0xa9, 0xff, 0x59,
928 	0xe1, 0xf8, 0xb7, 0x20, 0x9c, 0xc4, 0x13, 0xd0, 0xd6, 0x41, 0xfb, 0x2b, 0xb0, 0x9b, 0xf2,
929 	0x93, 0x20, 0x9a, 0x32, 0x67, 0xed, 0xaf, 0x25, 0xdc, 0xa8, 0xc2, 0x8f, 0x28, 0xab, 0xf8,
930 	0xed, 0xb1, 0x3f, 0x65, 0xd4, 0xe8, 0x48, 0xf2, 0x41, 0x88, 0x21, 0xcb, 0xab, 0x1e, 0xf7,
931 	0x97, 0x68, 0xe8, 0x32, 0x7d, 0xec, 0x18, 0xf1, 0x83, 0x91, 0x13, 0xf8, 0x8c, 0x89, 0xe1,
932 	0x0a, 0x6c, 0xff, 0x82, 0xc1, 0x07, 0x00, 0xbd, 0xbc, 0x20, 0xa3, 0x51, 0x6d, 0x86, 0x5a,
933 	0x19, 0x29, 0x19, 0x02, 0x2f, 0xed, 0x41, 0x08, 0x89,
934 };
935 
936 static const uint8_t TEE_ATTR_RSA_PRIME2_VALUE01[] = {
937 	0xf1, 0xab, 0xe1, 0x59, 0x38, 0x71, 0x9e, 0x55, 0x22, 0x40, 0x6d, 0xa1, 0xc6, 0xb9,
938 	0x6d, 0xba, 0x57, 0x53, 0xec, 0xfd, 0xd2, 0x22, 0x2d, 0xba, 0x74, 0x9e, 0xdc, 0x33, 0x83,
939 	0xcd, 0x44, 0xd2, 0x7a, 0x63, 0xf3, 0xe0, 0x55, 0x5f, 0x4b, 0x03, 0xe5, 0x58, 0x7b, 0xe8,
940 	0x99, 0x5e, 0x8c, 0x75, 0x34, 0x3a, 0xa2, 0x96, 0x3c, 0x3b, 0x13, 0xaa, 0xb7, 0x58, 0x1d,
941 	0xad, 0x2c, 0x88, 0xbb, 0x99, 0x0a, 0x0b, 0xff, 0x9b, 0x68, 0x4d, 0x96, 0x1a, 0xe9, 0x52,
942 	0xf1, 0xa2, 0xcb, 0xb9, 0xe9, 0xe8, 0x63, 0x3d, 0x40, 0x14, 0x64, 0xb5, 0xd6, 0xe5, 0xf2,
943 	0x2a, 0x70, 0x4f, 0x1a, 0xab, 0x03, 0x63, 0xaa, 0x0d, 0xc7, 0xb3, 0xf3, 0x06, 0xb0, 0xca,
944 	0xb1, 0x48, 0x0d, 0x18, 0x63, 0x2e, 0xcc, 0xd9, 0xca, 0x2c, 0x5a, 0x1a, 0x75, 0x50, 0x0e,
945 	0x11, 0xb0, 0xd5, 0xa7, 0x74, 0x25, 0xe7, 0x0f, 0x1d,
946 };
947 
948 static const uint8_t TEE_ATTR_RSA_PRIVATE_EXPONENT_3072_VALUE01[] = {
949 	0x09, 0x83, 0x77, 0x7b, 0xbe, 0x9c, 0x98, 0xdd, 0xdf, 0x0e, 0xa0, 0xde, 0x97, 0xa1, 0x3e, 0x3e, 0xd1, 0x86, 0x3a, 0x7b, 0x8b, 0xeb, 0x62, 0xd7,
950 	0xa3, 0x92, 0xfc, 0x17, 0xe8, 0x91, 0xa3, 0xe8, 0x25, 0x12, 0x3e, 0x71, 0xba, 0xf0, 0x2c, 0xa4, 0xef, 0xc4, 0xd8, 0xdc, 0xc7, 0x64, 0x15, 0xfb,
951 	0xc9, 0x9c, 0x13, 0x8f, 0xa3, 0x7c, 0x6c, 0x41, 0x4d, 0x36, 0x5d, 0x2c, 0x59, 0x54, 0x54, 0x8f, 0x6f, 0x88, 0xaf, 0xa3, 0x24, 0x48, 0x10, 0x09,
952 	0x0f, 0x63, 0x69, 0x11, 0x69, 0x46, 0x67, 0xff, 0x15, 0x52, 0x81, 0xb8, 0x31, 0x1a, 0x50, 0x28, 0xdd, 0x88, 0x75, 0xfb, 0x17, 0xad, 0x9d, 0xe0,
953 	0x58, 0x47, 0x0a, 0xfc, 0x54, 0xa9, 0xef, 0xf6, 0x22, 0xd0, 0xf8, 0x0a, 0x04, 0xa6, 0xea, 0xe7, 0x8a, 0x15, 0x36, 0xcd, 0x2c, 0xb5, 0xb1, 0x77,
954 	0xde, 0x39, 0xc0, 0x35, 0xfd, 0x2b, 0xfd, 0x0a, 0xf9, 0x1b, 0x65, 0xca, 0x32, 0x9d, 0x27, 0x9c, 0xfc, 0xcb, 0xca, 0x6d, 0x74, 0x97, 0x3c, 0x5a,
955 	0xb9, 0x4b, 0x35, 0xc0, 0x40, 0xaa, 0xe6, 0x1c, 0x01, 0x69, 0x2c, 0x95, 0xfa, 0x00, 0xd0, 0x2c, 0x2f, 0xc7, 0x2c, 0xf5, 0xee, 0x48, 0x50, 0x79,
956 	0x62, 0xbb, 0xfc, 0xd6, 0xc7, 0xe5, 0xc7, 0x78, 0xed, 0x91, 0xfd, 0xd8, 0x0f, 0x52, 0x90, 0x0d, 0x4e, 0x78, 0x66, 0x1a, 0x34, 0x3a, 0x20, 0x67,
957 	0xb6, 0xf9, 0xc7, 0x96, 0x43, 0xad, 0x28, 0x56, 0xd4, 0xc0, 0xd4, 0x9c, 0x19, 0x5a, 0x03, 0xef, 0x57, 0x72, 0x92, 0x34, 0xac, 0xd9, 0x51, 0x8d,
958 	0x3b, 0xef, 0xfa, 0x23, 0x04, 0xe7, 0xdc, 0xde, 0x0f, 0xdd, 0x8a, 0xd2, 0xc3, 0xd0, 0x92, 0x87, 0xb1, 0x0c, 0x32, 0x66, 0x27, 0x14, 0x07, 0x7c,
959 	0x19, 0xf8, 0x8c, 0x04, 0x77, 0x9d, 0x92, 0x6b, 0x78, 0xeb, 0x5a, 0xe2, 0xb3, 0x05, 0x06, 0x34, 0x49, 0x2c, 0x7d, 0x78, 0xfa, 0x66, 0xb7, 0xdd,
960 	0x73, 0x1d, 0xd4, 0x5c, 0xa9, 0x32, 0x37, 0x07, 0xe5, 0xc4, 0xf4, 0x1c, 0x97, 0x1c, 0x76, 0xe5, 0x3c, 0x04, 0x40, 0x3c, 0x22, 0x54, 0xdd, 0xa6,
961 	0x35, 0xcb, 0xb3, 0x50, 0x5a, 0x6c, 0xb5, 0x89, 0x33, 0xa6, 0x58, 0x70, 0x0a, 0x85, 0xd5, 0xb7, 0xa2, 0x50, 0x98, 0x68, 0x0c, 0xf3, 0xf4, 0xc0,
962 	0x20, 0x5b, 0x09, 0x95, 0x7e, 0x0f, 0xae, 0x8c, 0xf8, 0x19, 0x23, 0x0e, 0x61, 0x79, 0x96, 0xfd, 0x80, 0xed, 0x6d, 0x9a, 0xe5, 0x65, 0x64, 0x5b,
963 	0x29, 0x3f, 0x12, 0xaf, 0xa4, 0xc4, 0x07, 0x6d, 0x2e, 0xa6, 0x5b, 0xb6, 0x9a, 0xf5, 0x05, 0x8c, 0xeb, 0x5c, 0x4b, 0x3c, 0x68, 0x4b, 0xe0, 0x8a,
964 	0xcb, 0x60, 0x21, 0x47, 0x2b, 0xd9, 0x3a, 0x37, 0x27, 0x5a, 0x1c, 0x20, 0xfc, 0xdf, 0x05, 0xb2, 0x77, 0x56, 0xba, 0x10, 0x15, 0xd3, 0x84, 0xa3,
965 };
966 
967 static const uint8_t TEE_ATTR_RSA_PRIVATE_EXPONENT_FOR_FUZZING_RSAD[] = {
968 	0x53, 0x33, 0x9c, 0xfd, 0xb7, 0x9f, 0xc8, 0x46, 0x6a, 0x65, 0x5c, 0x73, 0x16, 0xac, 0xa8, 0x5c, 0x55, 0xfd, 0x8f, 0x6d, 0xd8, 0x98, 0xfd, 0xaf,
969 	0x11, 0x95, 0x17, 0xef, 0x4f, 0x52, 0xe8, 0xfd, 0x8e, 0x25, 0x8d, 0xf9, 0x3f, 0xee, 0x18, 0x0f, 0xa0, 0xe4, 0xab, 0x29, 0x69, 0x3c, 0xd8, 0x3b,
970 	0x15, 0x2a, 0x55, 0x3d, 0x4a, 0xc4, 0xd1, 0x81, 0x2b, 0x8b, 0x9f, 0xa5, 0xaf, 0x0e, 0x7f, 0x55, 0xfe, 0x73, 0x04, 0xdf, 0x41, 0x57, 0x09, 0x26,
971 	0xf3, 0x31, 0x1f, 0x15, 0xc4, 0xd6, 0x5a, 0x73, 0x2c, 0x48, 0x31, 0x16, 0xee, 0x3d, 0x3d, 0x2d, 0x0a, 0xf3, 0x54, 0x9a, 0xd9, 0xbf, 0x7c, 0xbf,
972 	0xb7, 0x8a, 0xd8, 0x84, 0xf8, 0x4d, 0x5b, 0xeb, 0x04, 0x72, 0x4d, 0xc7, 0x36, 0x9b, 0x31, 0xde, 0xf3, 0x7d, 0x0c, 0xf5, 0x39, 0xe9, 0xcf, 0xcd,
973 	0xd3, 0xde, 0x65, 0x37, 0x29, 0xea, 0xd5, 0xd1,
974 };
975 
976 static const uint8_t TEE_ATTR_RSA_PRIVATE_EXPONENT_VALUE01[] = {
977 	0xa5, 0x0d, 0xe1, 0x84, 0xf9, 0x02, 0xec, 0x42, 0x20, 0x2c, 0x98, 0x98, 0x70, 0xa3,
978 	0x1a, 0x04, 0x21, 0xa7, 0xa0, 0x59, 0x5d, 0x87, 0x80, 0x9b, 0x09, 0x57, 0x91, 0xb4, 0x50,
979 	0x51, 0x62, 0xbf, 0x22, 0xd7, 0xdb, 0x17, 0x25, 0xb0, 0x9c, 0x91, 0x29, 0x5f, 0x10, 0x9c,
980 	0xac, 0x44, 0x48, 0xb2, 0x43, 0x8d, 0x6b, 0x36, 0x84, 0xa7, 0xdf, 0xb8, 0x1b, 0x9f, 0x73,
981 	0xac, 0x2c, 0x53, 0xa5, 0x39, 0xd9, 0xa2, 0xe2, 0x7e, 0xf2, 0x07, 0x2d, 0x80, 0xa4, 0x7b,
982 	0x7b, 0x66, 0x1a, 0x2f, 0xb7, 0x66, 0x64, 0x66, 0xa8, 0xc3, 0x8d, 0x7e, 0x8a, 0x7f, 0xc6,
983 	0xd7, 0x52, 0xe7, 0x38, 0x30, 0x59, 0x74, 0x88, 0x8e, 0x8a, 0x52, 0x79, 0x30, 0x77, 0xc9,
984 	0xe5, 0x7a, 0x3e, 0x65, 0x5d, 0x89, 0xa9, 0xb7, 0x0b, 0xc6, 0x62, 0x72, 0x9e, 0xa4, 0x72,
985 	0xae, 0x4b, 0xb3, 0xf2, 0x89, 0x47, 0x15, 0xe0, 0x5b, 0x45, 0x4d, 0x99, 0x5b, 0x13, 0x6c,
986 	0x90, 0xbe, 0xe5, 0xb5, 0x98, 0xad, 0x87, 0x99, 0x1a, 0x57, 0xd4, 0x1f, 0xf1, 0x52, 0x71,
987 	0x5b, 0x51, 0x40, 0xdc, 0x51, 0x35, 0xf6, 0x6c, 0xae, 0xa3, 0xf9, 0x0f, 0x3a, 0xed, 0x28,
988 	0xfc, 0xa5, 0x60, 0x2f, 0x4b, 0x4f, 0x31, 0xac, 0x48, 0x3e, 0x5b, 0xba, 0xe4, 0x2b, 0x58,
989 	0x79, 0xe6, 0xb4, 0x6b, 0x5e, 0x56, 0x0a, 0xb2, 0xdb, 0x68, 0xed, 0x24, 0xd8, 0x5e, 0x6f,
990 	0x30, 0x59, 0x8d, 0x8c, 0xa3, 0x00, 0x68, 0xf5, 0x42, 0x95, 0x1a, 0x0b, 0xa8, 0x1c, 0xfb,
991 	0xdf, 0x29, 0x81, 0x10, 0x32, 0x02, 0xcc, 0x51, 0xa4, 0x17, 0x14, 0x3e, 0xef, 0x89, 0x41,
992 	0xde, 0xf8, 0x2d, 0x64, 0x69, 0x30, 0xe8, 0x8a, 0xad, 0x96, 0xf6, 0xf4, 0x82, 0x83, 0x9a,
993 	0x77, 0xe7, 0xde, 0x12, 0x31, 0xf7, 0x15, 0xec, 0xce, 0xed, 0x83, 0x68, 0x88, 0x84, 0xe5,
994 	0x64, 0x81,
995 };
996 
997 static const uint8_t TEE_ATTR_RSA_PUBLIC_EXPONENT_3072_VALUE01[] = {
998 	0x53, 0x5c, 0x97,
999 };
1000 
1001 static const uint8_t TEE_ATTR_RSA_PUBLIC_EXPONENT_FOR_FUZZING_RSAE[] = {
1002 	0x01, 0x00, 0x01,
1003 };
1004 
1005 static const uint8_t TEE_ATTR_RSA_PUBLIC_EXPONENT_VALUE_GEN_OUT_OF_RANGE_SUP[] = {
1006 	0x01,
1007 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1008 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
1009 };
1010 
1011 static const uint8_t TEE_ATTR_SECRET_VALUE_1024_SHARED_SECRET_DH_VALUE01[] = {
1012 	0x4e, 0x6a, 0xcf, 0xfd, 0x7d, 0x14, 0x27, 0x65, 0xeb, 0xf4, 0xc7, 0x12, 0x41, 0x4f, 0xe4, 0xb6,
1013 	0xab, 0x95, 0x7f, 0x4c, 0xb4, 0x66, 0xb4, 0x66, 0x01, 0x28, 0x9b, 0xb8, 0x20, 0x60, 0x42, 0x82,
1014 	0x72, 0x84, 0x2e, 0xe2, 0x8f, 0x11, 0x3c, 0xd1, 0x1f, 0x39, 0x43, 0x1c, 0xbf, 0xfd, 0x82, 0x32,
1015 	0x54, 0xce, 0x47, 0x2e, 0x21, 0x05, 0xe4, 0x9b, 0x3d, 0x7f, 0x11, 0x3b, 0x82, 0x50, 0x76, 0xe6,
1016 	0x26, 0x45, 0x85, 0x80, 0x7b, 0xc4, 0x64, 0x54, 0x66, 0x5f, 0x27, 0xc5, 0xe4, 0xe1, 0xa4, 0xbd,
1017 	0x03, 0x47, 0x04, 0x86, 0x32, 0x29, 0x81, 0xfd, 0xc8, 0x94, 0xcc, 0xa1, 0xe2, 0x93, 0x09, 0x87,
1018 	0xc9, 0x2c, 0x15, 0xa3, 0x8b, 0xc4, 0x2e, 0xb3, 0x88, 0x10, 0xe8, 0x67, 0xc4, 0x43, 0x2f, 0x07,
1019 	0x25, 0x9e, 0xc0, 0x0c, 0xdb, 0xbb, 0x0f, 0xb9, 0x9e, 0x17, 0x27, 0xc7, 0x06, 0xda, 0x58, 0xdd,
1020 };
1021 
1022 static const uint8_t TEE_ATTR_SECRET_VALUE_192_SHARED_SECRET_ECDH_VALUE01[] = {
1023 	0x80, 0x3d, 0x8a, 0xb2, 0xe5, 0xb6, 0xe6, 0xfc, 0xa7, 0x15, 0x73, 0x7c, 0x3a, 0x82, 0xf7, 0xce,
1024 	0x3c, 0x78, 0x31, 0x24, 0xf6, 0xd5, 0x1c, 0xd0,
1025 };
1026 
1027 static const uint8_t TEE_ATTR_SECRET_VALUE_224_SHARED_SECRET_ECDH_VALUE01[] = {
1028 	0x7d, 0x96, 0xf9, 0xa3, 0xbd, 0x3c, 0x05, 0xcf, 0x5c, 0xc3, 0x7f, 0xeb, 0x8b, 0x9d, 0x52, 0x09,
1029 	0xd5, 0xc2, 0x59, 0x74, 0x64, 0xde, 0xc3, 0xe9, 0x98, 0x37, 0x43, 0xe8,
1030 };
1031 
1032 static const uint8_t TEE_ATTR_SECRET_VALUE_256_SHARED_SECRET_ECDH_VALUE01[] = {
1033 	0x46, 0xfc, 0x62, 0x10, 0x64, 0x20, 0xff, 0x01, 0x2e, 0x54, 0xa4, 0x34, 0xfb, 0xdd, 0x2d, 0x25,
1034 	0xcc, 0xc5, 0x85, 0x20, 0x60, 0x56, 0x1e, 0x68, 0x04, 0x0d, 0xd7, 0x77, 0x89, 0x97, 0xbd, 0x7b,
1035 };
1036 
1037 static const uint8_t TEE_ATTR_SECRET_VALUE_384_SHARED_SECRET_ECDH_VALUE01[] = {
1038 	0x5f, 0x9d, 0x29, 0xdc, 0x5e, 0x31, 0xa1, 0x63, 0x06, 0x03, 0x56, 0x21, 0x36, 0x69, 0xc8, 0xce,
1039 	0x13, 0x2e, 0x22, 0xf5, 0x7c, 0x9a, 0x04, 0xf4, 0x0b, 0xa7, 0xfc, 0xea, 0xd4, 0x93, 0xb4, 0x57,
1040 	0xe5, 0x62, 0x1e, 0x76, 0x6c, 0x40, 0xa2, 0xe3, 0xd4, 0xd6, 0xa0, 0x4b, 0x25, 0xe5, 0x33, 0xf1,
1041 };
1042 
1043 static const uint8_t TEE_ATTR_SECRET_VALUE_4096_VALUE01[] = {
1044 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1045 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1046 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1047 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1048 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1049 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1050 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1051 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1052 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1053 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1054 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1055 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1056 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1057 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1058 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1059 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1060 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1061 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1062 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1063 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1064 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1065 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1066 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1067 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1068 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1069 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1070 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1071 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1072 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1073 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1074 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1075 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1076 };
1077 
1078 static const uint8_t TEE_ATTR_SECRET_VALUE_521_SHARED_SECRET_ECDH_VALUE01[] = {
1079 	0x00, 0x5f, 0xc7, 0x04, 0x77, 0xc3, 0xe6, 0x3b, 0xc3, 0x95, 0x4b, 0xd0, 0xdf, 0x3e, 0xa0, 0xd1,
1080 	0xf4, 0x1e, 0xe2, 0x17, 0x46, 0xed, 0x95, 0xfc, 0x5e, 0x1f, 0xdf, 0x90, 0x93, 0x0d, 0x5e, 0x13,
1081 	0x66, 0x72, 0xd7, 0x2c, 0xc7, 0x70, 0x74, 0x2d, 0x17, 0x11, 0xc3, 0xc3, 0xa4, 0xc3, 0x34, 0xa0,
1082 	0xad, 0x97, 0x59, 0x43, 0x6a, 0x4d, 0x3c, 0x5b, 0xf6, 0xe7, 0x4b, 0x95, 0x78, 0xfa, 0xc1, 0x48,
1083 	0xc8, 0x31,
1084 };
1085 
1086 static const uint32_t TEE_ATTR_VALUE_ZERO;
1087 
1088 /*
1089  * Values are 32 bits, while this is 64 so it can never clash with a real
1090  * value.
1091  */
1092 #define TEE_ATTR_VALUE_NONE 0xffffffffffffffff
1093 
1094 static uint32_t TEE_ATTR_RSA_PUBLIC_EXPONENT_VALUE01[] = { 0x10001 };
1095 
1096 static const uint8_t BUFFER01[] = {
1097 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1098 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1099 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1100 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1101 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1102 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1103 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1104 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1105 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1106 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1107 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1108 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1109 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1110 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1111 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1112 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1113 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1114 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1115 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1116 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1117 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1118 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1119 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1120 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1121 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1122 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1123 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1124 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1125 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1126 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1127 	0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
1128 };
1129 
1130 static const uint8_t INITIAL_DATA[] = {
1131 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1132 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1133 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1134 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1135 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1136 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1137 	0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1138 	0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1139 	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1140 	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1141 	0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1142 	0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1143 	0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1144 	0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1145 	0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1146 	0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1147 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1148 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1149 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1150 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1151 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1152 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1153 	0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1154 	0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1155 	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1156 	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1157 	0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1158 	0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1159 	0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1160 	0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1161 	0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1162 	0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1163 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1164 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1165 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1166 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1167 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1168 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1169 	0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1170 	0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1171 	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1172 	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1173 	0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1174 	0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1175 	0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1176 	0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1177 	0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1178 	0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1179 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1180 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1181 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1182 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1183 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1184 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1185 	0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1186 	0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1187 	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1188 	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1189 	0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1190 	0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1191 	0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1192 	0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1193 	0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1194 	0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1195 };
1196 
1197 static const uint8_t SINGLE_BYTE[] = { 0 };
1198 
1199 /** ALL_TEEC_UUID
1200  *
1201  * These constants are the UUID of existing
1202  * Trusted Applications
1203  */
1204 /* "SMARTCSLTDATAST1" */
1205 static TEEC_UUID UUID_TTA_testingInternalAPI_dataStorage = {
1206 	0x534D4152, 0x5443, 0x534C,
1207 	{ 0x54, 0x44, 0x41, 0x54, 0x41, 0x53, 0x54, 0x31 }
1208 };
1209 
Invoke_ReadObjectData(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmdId,uint32_t obj_handle,uint32_t buffer,uint32_t buffer_size)1210 static TEEC_Result Invoke_ReadObjectData(
1211 	ADBG_Case_t *c, TEEC_Session *sess, uint32_t cmdId,
1212 	uint32_t obj_handle, uint32_t buffer, uint32_t buffer_size)
1213 {
1214 	TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
1215 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1216 	uint32_t org;
1217 
1218 	ALLOCATE_SHARED_MEMORY(sess->ctx, SHARE_MEM01, buffer_size,
1219 			       TEEC_MEM_OUTPUT, mem01_exit)
1220 
1221 	op.params[0].value.a = obj_handle;
1222 	op.params[0].value.b = buffer;
1223 	SET_SHARED_MEMORY_OPERATION_PARAMETER(1, 0, SHARE_MEM01,
1224 					      SHARE_MEM01->size)
1225 
1226 	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
1227 					 TEEC_MEMREF_PARTIAL_OUTPUT,
1228 					 TEEC_NONE, TEEC_NONE);
1229 
1230 	free(saved_obj_data);
1231 	saved_obj_data = NULL;
1232 	saved_obj_data_size = 0;
1233 
1234 	res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
1235 
1236 	if (!res) {
1237 		size_t sz = op.params[1].memref.size;
1238 
1239 		saved_obj_data = malloc(sz);
1240 		memcpy(saved_obj_data, SHARE_MEM01->buffer, sz);
1241 		saved_obj_data_size = sz;
1242 	}
1243 
1244 	TEEC_ReleaseSharedMemory(SHARE_MEM01);
1245 mem01_exit:
1246 	return res;
1247 }
1248 
1249 #define Check_ReadObjectData_DataRead(c, data, data_size) \
1250 	ADBG_EXPECT_BUFFER(c, data, data_size, saved_obj_data, \
1251 			   saved_obj_data_size)
1252 
1253 #define Check_ReadObjectData_AfterWrite(c, data, data_size) \
1254 	ADBG_EXPECT_BUFFER(c, data, data_size, saved_obj_data, \
1255 			   saved_obj_data_size)
1256 
Invoke_RenamePersistentObject(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmdId,uint32_t obj_handle,const char * new_obj_id,bool use_parameter_buffer)1257 static TEEC_Result Invoke_RenamePersistentObject(ADBG_Case_t *c,
1258 						 TEEC_Session *sess,
1259 						 uint32_t cmdId,
1260 						 uint32_t obj_handle,
1261 						 const char *new_obj_id,
1262 						 bool use_parameter_buffer)
1263 {
1264 	TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
1265 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1266 	size_t obj_id_len = 0;
1267 	uint32_t org = 0;
1268 
1269 	if (new_obj_id)
1270 		obj_id_len = strlen(new_obj_id);
1271 	ALLOCATE_AND_FILL_SHARED_MEMORY(sess->ctx, SHARE_MEM01, obj_id_len,
1272 					TEEC_MEM_INPUT, obj_id_len, new_obj_id,
1273 					mem01_exit);
1274 
1275 	op.params[0].value.a = obj_handle;
1276 	op.params[1].value.a = use_parameter_buffer;
1277 	SET_SHARED_MEMORY_OPERATION_PARAMETER(2, 0, SHARE_MEM01,
1278 					      SHARE_MEM01->size)
1279 
1280 	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_INPUT,
1281 					 TEEC_MEMREF_PARTIAL_INPUT, TEEC_NONE);
1282 
1283 	res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
1284 
1285 	TEEC_ReleaseSharedMemory(SHARE_MEM01);
1286 mem01_exit:
1287 	return res;
1288 }
1289 
Invoke_AllocateTransientObject(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_type,uint32_t obj_size,uint32_t obj_handle)1290 static TEEC_Result Invoke_AllocateTransientObject(ADBG_Case_t *c,
1291 						  TEEC_Session *sess,
1292 						  uint32_t cmd,
1293 						  uint32_t obj_type,
1294 						  uint32_t obj_size,
1295 						  uint32_t obj_handle)
1296 {
1297 	return Invoke_Simple_Function_v2(c, sess, cmd, obj_handle, 0, obj_type,
1298 					 obj_size);
1299 }
1300 
Invoke_GetObjectInfo1(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle,uint32_t obj_info)1301 static TEEC_Result Invoke_GetObjectInfo1(ADBG_Case_t *c,
1302 					 TEEC_Session *sess, uint32_t cmd,
1303 					 uint32_t obj_handle, uint32_t obj_info)
1304 {
1305 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1306 	TEEC_Result res;
1307 	uint32_t org;
1308 
1309 	op.params[0].value.a = obj_handle;
1310 	op.params[0].value.b = obj_info;
1311 
1312 	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INOUT, TEEC_VALUE_OUTPUT,
1313 					 TEEC_VALUE_OUTPUT, TEEC_VALUE_OUTPUT);
1314 
1315 	memset(saved_obj_info, 0, sizeof(saved_obj_info[0]));
1316 
1317 	res = TEEC_InvokeCommand(sess, cmd, &op, &org);
1318 	if (!res) {
1319 		saved_obj_info[0].obj_type = op.params[0].value.b;
1320 		saved_obj_info[0].obj_size = op.params[1].value.a;
1321 		saved_obj_info[0].max_obj_size = op.params[1].value.b;
1322 		saved_obj_info[0].obj_usage = op.params[2].value.a;
1323 		saved_obj_info[0].data_size = op.params[2].value.b;
1324 		saved_obj_info[0].data_pos = op.params[3].value.a;
1325 		saved_obj_info[0].handle_flags = op.params[3].value.b;
1326 	}
1327 
1328 	return res;
1329 }
1330 
Invoke_GetObjectInfo(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle,uint32_t obj_info)1331 static TEEC_Result Invoke_GetObjectInfo(ADBG_Case_t *c, TEEC_Session *sess,
1332 					uint32_t cmd, uint32_t obj_handle,
1333 					uint32_t obj_info)
1334 {
1335 	return Invoke_GetObjectInfo1(c, sess, cmd, obj_handle, obj_info);
1336 }
1337 
1338 #define check_saved_obj_info(c, n, IN_ObjectType, IN_KeySize, IN_MaxKeySize, \
1339 			     IN_ObjectUsage, IN_DataSize, IN_DataPosition, \
1340 			     IN_HandleFlags_Data) \
1341 	do { \
1342 		if (ADBG_EXPECT_COMPARE_UNSIGNED(c, n, <, \
1343 						 MAX_NUM_SAVED_OBJ_INFO)) { \
1344 			ADBG_EXPECT(c, IN_ObjectType, \
1345 				    saved_obj_info[n].obj_type); \
1346 			ADBG_EXPECT(c, IN_KeySize, \
1347 				    saved_obj_info[n].obj_size); \
1348 			ADBG_EXPECT(c, IN_MaxKeySize, \
1349 				    saved_obj_info[n].max_obj_size); \
1350 			ADBG_EXPECT(c, IN_ObjectUsage, \
1351 				    saved_obj_info[n].obj_usage); \
1352 			ADBG_EXPECT(c, IN_DataSize, \
1353 				    saved_obj_info[n].data_size); \
1354 			ADBG_EXPECT(c, IN_DataPosition, \
1355 				    saved_obj_info[n].data_pos); \
1356 			ADBG_EXPECT(c, IN_HandleFlags_Data, \
1357 				    saved_obj_info[n].handle_flags); \
1358 		} \
1359 	} while (0)
1360 
1361 #define Check_ObjectInfo(c, IN_ObjectType, IN_KeySize, IN_MaxKeySize, \
1362 			 IN_ObjectUsage, IN_DataSize, IN_DataPosition, \
1363 			 IN_HandleFlags_Handle, IN_HandleFlags_Data) \
1364 	do { \
1365 		check_saved_obj_info(c, 0, IN_ObjectType, IN_KeySize, \
1366 				     IN_MaxKeySize, IN_ObjectUsage, \
1367 				     IN_DataSize, IN_DataPosition, \
1368 				     IN_HandleFlags_Data); \
1369 		ADBG_EXPECT(c, IN_HandleFlags_Handle, 0); \
1370 	} while (0)
1371 
1372 #define set_handle_flag(c, vector, flag)  do { (vector) |= (flag); } while (0)
1373 #define set_usage_flag(c, vector, flag)   do { (vector) |= (flag); } while (0)
1374 #define clear_usage_flag(c, vector, flag) do { (vector) &= ~(flag); } while (0)
1375 #define set_data_flag(c, vector, flag)    do { (vector) |= (flag); } while (0)
1376 #define clear_data_flag(c, vector, flag)  do { (vector) &= ~(flag); } while (0)
1377 
Invoke_RestrictObjectUsage1(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle,uint32_t obj_usage)1378 static TEEC_Result Invoke_RestrictObjectUsage1(ADBG_Case_t *c,
1379 					       TEEC_Session *sess, uint32_t cmd,
1380 					       uint32_t obj_handle,
1381 					       uint32_t obj_usage)
1382 {
1383 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_handle, obj_usage);
1384 }
1385 
Invoke_RestrictObjectUsage(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle,uint32_t obj_usage)1386 static TEEC_Result Invoke_RestrictObjectUsage(ADBG_Case_t *c,
1387 					      TEEC_Session *sess, uint32_t cmd,
1388 					      uint32_t obj_handle,
1389 					      uint32_t obj_usage)
1390 {
1391 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_handle, obj_usage);
1392 }
1393 
Invoke_ResetTransientObject(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle)1394 static TEEC_Result Invoke_ResetTransientObject(ADBG_Case_t *c,
1395 					       TEEC_Session *sess, uint32_t cmd,
1396 					       uint32_t obj_handle)
1397 {
1398 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_handle, 0);
1399 }
1400 
Invoke_CloseAndDeletePersistentObject1(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle)1401 static TEEC_Result Invoke_CloseAndDeletePersistentObject1(ADBG_Case_t *c,
1402 							  TEEC_Session *sess,
1403 							  uint32_t cmd,
1404 							  uint32_t obj_handle)
1405 {
1406 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_handle, 0);
1407 }
1408 
Invoke_CloseAndDeletePersistentObject(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle)1409 static TEEC_Result Invoke_CloseAndDeletePersistentObject(ADBG_Case_t *c,
1410 							 TEEC_Session *sess,
1411 							 uint32_t cmd,
1412 							 uint32_t obj_handle)
1413 {
1414 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_handle, 0);
1415 }
1416 
Invoke_CloseObject(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle)1417 static TEEC_Result Invoke_CloseObject(ADBG_Case_t *c, TEEC_Session *sess,
1418 				      uint32_t cmd, uint32_t obj_handle)
1419 {
1420 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_handle, 0);
1421 }
1422 
Invoke_CreatePersistentObject(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t storage_id,const char * obj_id,uint32_t flags,uint32_t attrs_obj_handle,const void * initial_data,size_t initial_data_len,uint32_t obj_handle)1423 static TEEC_Result Invoke_CreatePersistentObject(ADBG_Case_t *c,
1424 						 TEEC_Session *sess,
1425 						 uint32_t cmd,
1426 						 uint32_t storage_id,
1427 						 const char *obj_id,
1428 						 uint32_t flags,
1429 						 uint32_t attrs_obj_handle,
1430 						 const void *initial_data,
1431 						 size_t initial_data_len,
1432 						 uint32_t obj_handle)
1433 {
1434 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1435 	TEEC_Result res = TEE_SUCCESS;
1436 	uint32_t org = 0;
1437 	static TEEC_SharedMemory shm_obj_id = { };
1438 	static TEEC_SharedMemory shm_data = { };
1439 
1440 	shm_obj_id.size = strlen(obj_id);
1441 	shm_obj_id.flags = TEEC_MEM_INPUT;
1442 	res = TEEC_AllocateSharedMemory(sess->ctx, &shm_obj_id);
1443 	if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
1444 		return res;
1445 	memcpy(shm_obj_id.buffer, obj_id, shm_obj_id.size);
1446 
1447 	shm_data.size = initial_data_len;
1448 	shm_data.flags = TEEC_MEM_INPUT;
1449 	res = TEEC_AllocateSharedMemory(sess->ctx, &shm_data);
1450 	if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
1451 		goto out_free_obj_id;
1452 	memcpy(shm_data.buffer, initial_data, shm_data.size);
1453 
1454 	op.params[0].value.a = obj_handle;
1455 	op.params[0].value.b = storage_id;
1456 	op.params[1].value.a = flags;
1457 	op.params[1].value.b = attrs_obj_handle;
1458 	SET_SHARED_MEMORY_OPERATION_PARAMETER(2, 0, &shm_obj_id,
1459 					      shm_obj_id.size);
1460 	SET_SHARED_MEMORY_OPERATION_PARAMETER(3, 0, &shm_data, shm_data.size);
1461 
1462 	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_INPUT,
1463 					 TEEC_MEMREF_PARTIAL_INPUT,
1464 					 TEEC_MEMREF_PARTIAL_INPUT);
1465 
1466 	res = TEEC_InvokeCommand(sess, cmd, &op, &org);
1467 
1468 	TEEC_ReleaseSharedMemory(&shm_data);
1469 out_free_obj_id:
1470 	TEEC_ReleaseSharedMemory(&shm_obj_id);
1471 
1472 	return res;
1473 }
1474 
Invoke_OpenPersistentObject(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t storage_id,const char * obj_id,uint32_t flags,uint32_t obj_handle)1475 static TEEC_Result Invoke_OpenPersistentObject(ADBG_Case_t *c,
1476 					       TEEC_Session *sess,
1477 					       uint32_t cmd,
1478 					       uint32_t storage_id,
1479 					       const char *obj_id,
1480 					       uint32_t flags,
1481 					       uint32_t obj_handle)
1482 {
1483 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1484 	TEEC_Result res = TEE_SUCCESS;
1485 	uint32_t org = 0;
1486 	static TEEC_SharedMemory shm = { };
1487 
1488 	shm.size = strlen(obj_id);
1489 	shm.flags = TEEC_MEM_INPUT;
1490 	res = TEEC_AllocateSharedMemory(sess->ctx, &shm);
1491 	if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
1492 		return res;
1493 	memcpy(shm.buffer, obj_id, shm.size);
1494 
1495 	op.params[0].value.a = obj_handle;
1496 	op.params[0].value.b = storage_id;
1497 	op.params[1].value.a = flags;
1498 	SET_SHARED_MEMORY_OPERATION_PARAMETER(2, 0, &shm, shm.size);
1499 
1500 	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_INPUT,
1501 					 TEEC_MEMREF_PARTIAL_INPUT, TEEC_NONE);
1502 
1503 	res = TEEC_InvokeCommand(sess, cmd, &op, &org);
1504 
1505 	TEEC_ReleaseSharedMemory(&shm);
1506 
1507 	return res;
1508 }
1509 
1510 #define add_attribute(c, vector, attr) do { (vector) |= BIT((attr)); } while (0)
1511 
get_attribute_and_advance(uint32_t attr_list,size_t * n)1512 static uint32_t get_attribute_and_advance(uint32_t attr_list, size_t *n)
1513 {
1514 	while (*n < 32) {
1515 		size_t bit_idx = *n;
1516 
1517 		(*n)++;
1518 		if (attr_list & BIT(bit_idx))
1519 			return bit_idx;
1520 	}
1521 
1522 	return ATTRIBUTE_NONE;
1523 }
1524 
Invoke_PopulateTransientObject(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle,uint32_t attr_list)1525 static TEEC_Result Invoke_PopulateTransientObject(ADBG_Case_t *c,
1526 						  TEEC_Session *sess,
1527 						  uint32_t cmd,
1528 						  uint32_t obj_handle,
1529 						  uint32_t attr_list)
1530 {
1531 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1532 	uint32_t org = 0;
1533 	size_t n = 0;
1534 
1535 	op.params[0].value.a = obj_handle;
1536 	op.params[1].value.a = get_attribute_and_advance(attr_list, &n);
1537 	op.params[1].value.b = get_attribute_and_advance(attr_list, &n);
1538 	op.params[2].value.a = get_attribute_and_advance(attr_list, &n);
1539 	op.params[2].value.b = get_attribute_and_advance(attr_list, &n);
1540 	op.params[3].value.a = get_attribute_and_advance(attr_list, &n);
1541 	op.params[3].value.b = get_attribute_and_advance(attr_list, &n);
1542 
1543 	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_INPUT,
1544 					 TEEC_VALUE_INPUT, TEEC_VALUE_INPUT);
1545 
1546 	return TEEC_InvokeCommand(sess, cmd, &op, &org);
1547 }
1548 
Invoke_CopyObjectAttributes1(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t dest_obj,uint32_t src_obj)1549 static TEEC_Result Invoke_CopyObjectAttributes1(ADBG_Case_t *c,
1550 						TEEC_Session *sess,
1551 						uint32_t cmd,
1552 						uint32_t dest_obj,
1553 						uint32_t src_obj)
1554 {
1555 	return Invoke_Simple_Function_v1(c, sess, cmd, dest_obj, src_obj);
1556 }
1557 
Invoke_CopyObjectAttributes(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t dest_obj,uint32_t src_obj)1558 static TEEC_Result Invoke_CopyObjectAttributes(ADBG_Case_t *c,
1559 					       TEEC_Session *sess,
1560 					       uint32_t cmd,
1561 					       uint32_t dest_obj,
1562 					       uint32_t src_obj)
1563 {
1564 	return Invoke_Simple_Function_v1(c, sess, cmd, dest_obj, src_obj);
1565 }
1566 
Invoke_InitValueAttribute(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t attr,uint32_t attr_id,uint32_t a,uint32_t a_size,uint32_t b,uint32_t b_size)1567 static TEEC_Result Invoke_InitValueAttribute(ADBG_Case_t *c, TEEC_Session *sess,
1568 					     uint32_t cmd, uint32_t attr,
1569 					     uint32_t attr_id, uint32_t a,
1570 					     uint32_t a_size,
1571 					     uint32_t b,
1572 					     uint32_t b_size)
1573 {
1574 	return Invoke_Simple_Function_v2(c, sess, cmd, attr, attr_id, a, b);
1575 }
1576 
Invoke_AllocatePersistentObjectEnumerator(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_enum)1577 static TEEC_Result Invoke_AllocatePersistentObjectEnumerator(ADBG_Case_t *c,
1578 							     TEEC_Session *sess,
1579 							     uint32_t cmd,
1580 							     uint32_t obj_enum)
1581 {
1582 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_enum, 0);
1583 }
1584 
Invoke_StartPersistentObjectEnumerator(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_enum,uint32_t storage_id)1585 static TEEC_Result Invoke_StartPersistentObjectEnumerator(ADBG_Case_t *c,
1586 							  TEEC_Session *sess,
1587 							  uint32_t cmd,
1588 							  uint32_t obj_enum,
1589 							  uint32_t storage_id)
1590 {
1591 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_enum, storage_id);
1592 }
1593 
Invoke_ResetPersistentObjectEnumerator(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_enum)1594 static TEEC_Result Invoke_ResetPersistentObjectEnumerator(ADBG_Case_t *c,
1595 							  TEEC_Session *sess,
1596 							  uint32_t cmd,
1597 							  uint32_t obj_enum)
1598 {
1599 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_enum, 0);
1600 }
1601 
Invoke_GetNextPersistentObject_All(ADBG_Case_t * c,TEEC_Session * sess,uint32_t obj_enum,uint32_t obj_info,uint32_t count)1602 static TEEC_Result Invoke_GetNextPersistentObject_All(ADBG_Case_t *c,
1603 						      TEEC_Session *sess,
1604 						      uint32_t obj_enum,
1605 						      uint32_t obj_info,
1606 						      uint32_t count)
1607 {
1608 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1609 	static TEEC_SharedMemory shm = { };
1610 	TEEC_Result res = TEEC_SUCCESS;
1611 	uint32_t org = 0;
1612 	size_t n = 0;
1613 
1614 	if (!ADBG_EXPECT_COMPARE_UNSIGNED(c, count, <, MAX_NUM_SAVED_OBJ_INFO))
1615 		return TEEC_ERROR_BAD_PARAMETERS;
1616 
1617 	shm.size = TEE_OBJECT_ID_MAX_LEN;
1618 	shm.flags = TEEC_MEM_OUTPUT;
1619 	res = TEEC_AllocateSharedMemory(sess->ctx, &shm);
1620 	if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
1621 		return res;
1622 
1623 	for (n = 0; n < count; n++) {
1624 		memset(&op, 0, sizeof(op));
1625 		op.params[0].value.a = obj_enum;
1626 		op.params[0].value.b = obj_info;
1627 		SET_SHARED_MEMORY_OPERATION_PARAMETER(2, 0, &shm, shm.size);
1628 		op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
1629 						 TEEC_VALUE_INPUT,
1630 						 TEEC_MEMREF_PARTIAL_OUTPUT,
1631 						 TEEC_NONE);
1632 		res = TEEC_InvokeCommand(sess, CMD_DS_GetNextPersistentObject,
1633 					 &op, &org);
1634 		if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
1635 			break;
1636 
1637 		memcpy(&saved_obj_info[n].obj_id, shm.buffer,
1638 		       sizeof(saved_obj_info[n].obj_id));
1639 		saved_obj_info[n].obj_id_len = op.params[2].memref.size;
1640 
1641 		memset(&op, 0, sizeof(op));
1642 		op.params[0].value.a = obj_info;
1643 		op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INOUT,
1644 						 TEEC_VALUE_OUTPUT,
1645 						 TEEC_VALUE_OUTPUT,
1646 						 TEEC_VALUE_OUTPUT);
1647 		res = TEEC_InvokeCommand(sess, CMD_DS_Retrieve_ObjectInfo,
1648 					 &op, &org);
1649 		if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
1650 			break;
1651 		saved_obj_info[n].obj_type = op.params[0].value.b;
1652 		saved_obj_info[n].obj_size = op.params[1].value.a;
1653 		saved_obj_info[n].max_obj_size = op.params[1].value.b;
1654 		saved_obj_info[n].obj_usage = op.params[2].value.a;
1655 		saved_obj_info[n].data_size = op.params[2].value.b;
1656 		saved_obj_info[n].data_pos = op.params[3].value.a;
1657 		saved_obj_info[n].handle_flags = op.params[3].value.b;
1658 	}
1659 
1660 	TEEC_ReleaseSharedMemory(&shm);
1661 	return res;
1662 }
1663 
find_saved_obj_id(const void * obj_id,size_t obj_id_len)1664 static int find_saved_obj_id(const void *obj_id, size_t obj_id_len)
1665 {
1666 	int n = 0;
1667 
1668 	for (n = 0; n < MAX_NUM_SAVED_OBJ_INFO; n++)
1669 		if (obj_id_len == saved_obj_info[n].obj_id_len &&
1670 		    !memcmp(saved_obj_info[n].obj_id, obj_id, obj_id_len))
1671 			return n;
1672 
1673 	return -1;
1674 }
1675 
1676 #define Check_EnumeratedPersistentObject(c, IN_ObjectID, IN_ObjectType, \
1677 					 IN_KeySize, IN_MaxKeySize, \
1678 					 IN_ObjectUsage, IN_DataSize, \
1679 					 IN_HandleFlags_Handle, \
1680 					 IN_HandleFlags_Data) \
1681 	do { \
1682 		int n = find_saved_obj_id(IN_ObjectID, strlen(IN_ObjectID)); \
1683 		\
1684 		if (!ADBG_EXPECT_COMPARE_SIGNED(c, n, >=, 0)) \
1685 			break; \
1686 		ADBG_EXPECT(c, IN_ObjectType, saved_obj_info[n].obj_type); \
1687 		ADBG_EXPECT(c, IN_KeySize, saved_obj_info[n].obj_size); \
1688 		ADBG_EXPECT(c, IN_MaxKeySize, saved_obj_info[n].max_obj_size); \
1689 		ADBG_EXPECT(c, IN_DataSize, saved_obj_info[n].data_size); \
1690 		ADBG_EXPECT(c, IN_HandleFlags_Handle | IN_HandleFlags_Data, \
1691 			    saved_obj_info[n].handle_flags); \
1692 	} while (0)
1693 
1694 
1695 static TEEC_Result
Invoke_GetNextPersistentObject_ErrorChecking(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_enum,uint32_t obj_info,bool obj_id_is_null,bool obj_id_len_is_null)1696 Invoke_GetNextPersistentObject_ErrorChecking(ADBG_Case_t *c, TEEC_Session *sess,
1697 					     uint32_t cmd, uint32_t obj_enum,
1698 					     uint32_t obj_info,
1699 					     bool obj_id_is_null,
1700 					     bool obj_id_len_is_null)
1701 {
1702 	return Invoke_Simple_Function_v2(c, sess, cmd, obj_enum, obj_info,
1703 					 obj_id_is_null, obj_id_len_is_null);
1704 }
1705 
Invoke_FreePersistentObjectEnumerator(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_enum)1706 static TEEC_Result Invoke_FreePersistentObjectEnumerator(ADBG_Case_t *c,
1707 							 TEEC_Session *sess,
1708 							 uint32_t cmd,
1709 							 uint32_t obj_enum)
1710 {
1711 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_enum, 0);
1712 }
1713 
1714 
Invoke_GenerateKey(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle,uint32_t key_size,uint32_t attr_list)1715 static TEEC_Result Invoke_GenerateKey(ADBG_Case_t *c,
1716 				      TEEC_Session *sess, uint32_t cmd,
1717 				      uint32_t obj_handle, uint32_t key_size,
1718 				      uint32_t attr_list)
1719 {
1720 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1721 	uint32_t org = 0;
1722 	size_t n = 0;
1723 
1724 	op.params[0].value.a = obj_handle;
1725 	op.params[0].value.b = key_size;
1726 
1727 	op.params[1].value.a = get_attribute_and_advance(attr_list, &n);
1728 	op.params[1].value.b = get_attribute_and_advance(attr_list, &n);
1729 	op.params[2].value.a = get_attribute_and_advance(attr_list, &n);
1730 	op.params[2].value.b = get_attribute_and_advance(attr_list, &n);
1731 
1732 	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_INPUT,
1733 					 TEEC_VALUE_INPUT, TEEC_NONE);
1734 
1735 	return TEEC_InvokeCommand(sess, cmd, &op, &org);
1736 }
1737 
GetObjectValueAttribute_helper(ADBG_Case_t * c,TEEC_Session * sess,uint32_t n,uint32_t cmd,uint32_t obj,uint32_t attr_id,bool extract_a,bool extract_b)1738 static TEEC_Result GetObjectValueAttribute_helper(ADBG_Case_t *c,
1739 						  TEEC_Session *sess,
1740 						  uint32_t n, uint32_t cmd,
1741 						  uint32_t obj,
1742 						  uint32_t attr_id,
1743 						  bool extract_a,
1744 						  bool extract_b)
1745 {
1746 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1747 	TEEC_Result res = TEE_SUCCESS;
1748 	uint32_t org = 0;
1749 
1750 	op.params[0].value.a = obj;
1751 	op.params[0].value.b = attr_id;
1752 	op.params[1].value.a = extract_a;
1753 	op.params[1].value.b = extract_b;
1754 
1755 	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_INPUT,
1756 					 TEEC_VALUE_OUTPUT, TEEC_NONE);
1757 
1758 	res = TEEC_InvokeCommand(sess, cmd, &op, &org);
1759 
1760 	if (!res) {
1761 		memcpy(saved_attr[n].buf, &op.params[2].value,
1762 		       sizeof(op.params[2].value));
1763 		saved_attr[n].buf_size = sizeof(op.params[2].value);
1764 		saved_attr[n].attr_id = attr_id;
1765 	} else {
1766 		memset(saved_attr + n, 0, sizeof(saved_attr[n]));
1767 	}
1768 
1769 	return res;
1770 }
1771 
get_value_attr(ADBG_Case_t * c,TEEC_Session * sess,uint32_t n,uint32_t obj,uint32_t attr_id)1772 static TEEC_Result get_value_attr(ADBG_Case_t *c, TEEC_Session *sess,
1773 				  uint32_t n, uint32_t obj, uint32_t attr_id)
1774 {
1775 	return GetObjectValueAttribute_helper(c, sess, n,
1776 					      CMD_DS_GetObjectValueAttribute,
1777 					      obj, attr_id, true, true);
1778 }
1779 
get_buffer_attr(ADBG_Case_t * c,TEEC_Session * sess,uint32_t n,uint32_t obj,uint32_t attr_id)1780 static TEEC_Result get_buffer_attr(ADBG_Case_t *c, TEEC_Session *sess,
1781 				   uint32_t n, uint32_t obj, uint32_t attr_id)
1782 {
1783 	return GetObjectBufferAttribute_helper(c, sess, n,
1784 					       CMD_DS_GetObjectBufferAttribute,
1785 					       obj, attr_id, false,
1786 					       BIG_ATTRIBUTE_BUFFER_SIZE);
1787 }
1788 
GetAttributes_helper(ADBG_Case_t * c,TEEC_Session * sess,uint32_t obj,const uint32_t attr_ids[],size_t num_attr_ids)1789 static TEEC_Result GetAttributes_helper(ADBG_Case_t *c, TEEC_Session *sess,
1790 					uint32_t obj, const uint32_t attr_ids[],
1791 					size_t num_attr_ids)
1792 {
1793 	TEEC_Result res = TEE_SUCCESS;
1794 	size_t n = 0;
1795 
1796 	for (n = 0; n < num_attr_ids; n++) {
1797 		if (attr_ids[n] & BIT(29))
1798 			res = get_value_attr(c, sess, n, obj, attr_ids[n]);
1799 		else
1800 			res = get_buffer_attr(c, sess, n, obj, attr_ids[n]);
1801 		if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
1802 			break;
1803 	}
1804 
1805 	return res;
1806 }
1807 
Macro_GetDHAttributes(ADBG_Case_t * c,TEEC_Session * sess,uint32_t obj)1808 static TEEC_Result Macro_GetDHAttributes(ADBG_Case_t *c, TEEC_Session *sess,
1809 					 uint32_t obj)
1810 {
1811 	const uint32_t attrs[] = {
1812 		TEE_ATTR_DH_PRIME, TEE_ATTR_DH_BASE,
1813 		TEE_ATTR_DH_PUBLIC_VALUE, TEE_ATTR_DH_PRIVATE_VALUE,
1814 		TEE_ATTR_DH_X_BITS,
1815 	};
1816 
1817 	return GetAttributes_helper(c, sess, obj, attrs,
1818 				    sizeof(attrs) / sizeof(attrs[0]));
1819 }
1820 
1821 /* TODO check the attributes too */
1822 #define Check_GeneratedDHAttributes(c) \
1823 	do { ADBG_EXPECT_TRUE(c, true); } while (0)
1824 
Invoke_GetObjectValueAttribute(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj,uint32_t attr_id,bool extract_a,bool extract_b)1825 static TEEC_Result Invoke_GetObjectValueAttribute(ADBG_Case_t *c,
1826 						  TEEC_Session *sess,
1827 						  uint32_t cmd, uint32_t obj,
1828 						  uint32_t attr_id,
1829 						  bool extract_a,
1830 						  bool extract_b)
1831 {
1832 	return GetObjectValueAttribute_helper(c, sess, 0, cmd, obj,
1833 					      attr_id, extract_a, extract_b);
1834 }
1835 
Macro_GetRSAAttributes(ADBG_Case_t * c,TEEC_Session * sess,uint32_t obj)1836 static TEEC_Result Macro_GetRSAAttributes(ADBG_Case_t *c, TEEC_Session *sess,
1837 					 uint32_t obj)
1838 {
1839 	const uint32_t attrs[] = {
1840 		TEE_ATTR_RSA_MODULUS, TEE_ATTR_RSA_PUBLIC_EXPONENT,
1841 		TEE_ATTR_RSA_PRIVATE_EXPONENT, TEE_ATTR_RSA_PRIME1,
1842 		TEE_ATTR_RSA_PRIME2, TEE_ATTR_RSA_EXPONENT1,
1843 		TEE_ATTR_RSA_EXPONENT2, TEE_ATTR_RSA_COEFFICIENT,
1844 	};
1845 
1846 	return GetAttributes_helper(c, sess, obj, attrs,
1847 				    sizeof(attrs) / sizeof(attrs[0]));
1848 }
1849 
1850 /* TODO check the attributes too */
1851 #define Check_GeneratedRSAAttributes(c) \
1852 	do { ADBG_EXPECT_TRUE(c, true); } while (0)
1853 
1854 #define Check_ObjectBufferAttribute(c, attr_buf, attr_buf_len) \
1855 	do { \
1856 		ADBG_EXPECT_BUFFER(c, attr_buf, attr_buf_len, \
1857 				   saved_attr[0].buf, \
1858 				   saved_attr[0].buf_size); \
1859 	} while (0)
1860 
check_values(uint64_t a,uint64_t b,const uint8_t buf[],size_t blen)1861 static bool check_values(uint64_t a, uint64_t b, const uint8_t buf[],
1862 			 size_t blen)
1863 {
1864 	uint32_t exp_val = 0;
1865 
1866 	if (blen != sizeof(uint32_t) * 2)
1867 		return false;
1868 
1869 	if (a != TEE_ATTR_VALUE_NONE) {
1870 		memcpy(&exp_val, buf, sizeof(exp_val));
1871 		if (a != exp_val)
1872 			return false;
1873 	}
1874 
1875 	if (b != TEE_ATTR_VALUE_NONE) {
1876 		memcpy(&exp_val, buf + sizeof(uint32_t), sizeof(exp_val));
1877 		if (b != exp_val)
1878 			return false;
1879 	}
1880 
1881 	return true;
1882 }
1883 
1884 #define Check_ObjectValueAttribute(c, a, a_size, b, b_size) \
1885 	ADBG_EXPECT_TRUE(c, check_values(a, b, saved_attr[0].buf, \
1886 					 saved_attr[0].buf_size))
1887 
Invoke_StoreBuffer(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t buffer,const void * data,size_t size)1888 static TEEC_Result Invoke_StoreBuffer(ADBG_Case_t *c, TEEC_Session *sess,
1889 				      uint32_t cmd, uint32_t buffer,
1890 				      const void *data, size_t size)
1891 {
1892 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1893 	TEEC_Result res = TEE_SUCCESS;
1894 	uint32_t org = 0;
1895 	static TEEC_SharedMemory shm_data = { };
1896 	unsigned int pt1 = 0;
1897 
1898 	op.params[0].value.a = buffer;
1899 	if (data) {
1900 		shm_data.size = size;
1901 		shm_data.flags = TEEC_MEM_INPUT;
1902 		res = TEEC_AllocateSharedMemory(sess->ctx, &shm_data);
1903 		if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
1904 			return res;
1905 		memcpy(shm_data.buffer, data, shm_data.size);
1906 		SET_SHARED_MEMORY_OPERATION_PARAMETER(1, 0, &shm_data,
1907 						      shm_data.size);
1908 		pt1 = TEEC_MEMREF_PARTIAL_INPUT;
1909 	} else {
1910 		op.params[1].value.a = size;
1911 		pt1 = TEEC_VALUE_INPUT;
1912 	}
1913 
1914 	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, pt1,
1915 					 TEEC_NONE, TEEC_NONE);
1916 
1917 	res = TEEC_InvokeCommand(sess, cmd, &op, &org);
1918 
1919 	TEEC_ReleaseSharedMemory(&shm_data);
1920 
1921 	return res;
1922 }
1923 
Invoke_SeekObjectData(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle,ssize_t offset,int whence)1924 static TEEC_Result Invoke_SeekObjectData(ADBG_Case_t *c, TEEC_Session *sess,
1925 					 uint32_t cmd, uint32_t obj_handle,
1926 					 ssize_t offset, int whence)
1927 {
1928 	uint32_t offs;
1929 	uint32_t offs_negative;
1930 
1931 	if (offset >= 0) {
1932 		offs = offset;
1933 		offs_negative = 0;
1934 	} else {
1935 		offs = -offset;
1936 		offs_negative = 1;
1937 	}
1938 
1939 	return Invoke_Simple_Function_v3(c, sess, cmd, obj_handle, 0,
1940 					 offs, offs_negative, whence, 0);
1941 }
1942 
Invoke_WriteObjectData(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle,uint32_t buffer)1943 static TEEC_Result Invoke_WriteObjectData(ADBG_Case_t *c, TEEC_Session *sess,
1944 					  uint32_t cmd, uint32_t obj_handle,
1945 					  uint32_t buffer)
1946 {
1947 	return Invoke_Simple_Function_v1(c, sess, cmd, obj_handle, buffer);
1948 }
1949 
Invoke_TruncateObjectData(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t obj_handle,uint32_t size)1950 static TEEC_Result Invoke_TruncateObjectData(ADBG_Case_t *c, TEEC_Session *sess,
1951 					     uint32_t cmd, uint32_t obj_handle,
1952 					     uint32_t size)
1953 {
1954 	return Invoke_Simple_Function_v2(c, sess, cmd, obj_handle, 0, size, 0);
1955 }
1956 
Invoke_StoreAttributeBuffer(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t buffer,const void * value_bufptr,size_t value_size)1957 static TEEC_Result Invoke_StoreAttributeBuffer(ADBG_Case_t *c,
1958 					       TEEC_Session *sess,
1959 					       uint32_t cmd, uint32_t buffer,
1960 					       const void *value_bufptr,
1961 					       size_t value_size)
1962 {
1963 	TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
1964 	TEEC_Result res = TEE_SUCCESS;
1965 	uint32_t org = 0;
1966 	static TEEC_SharedMemory shm = { };
1967 
1968 	shm.size = value_size;
1969 	shm.flags = TEEC_MEM_INPUT;
1970 	res = TEEC_AllocateSharedMemory(sess->ctx, &shm);
1971 	if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
1972 		return res;
1973 	memcpy(shm.buffer, value_bufptr, shm.size);
1974 
1975 	op.params[0].value.a = buffer;
1976 	SET_SHARED_MEMORY_OPERATION_PARAMETER(1, 0, &shm, shm.size);
1977 
1978 	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
1979 					 TEEC_MEMREF_PARTIAL_INPUT,
1980 					 TEEC_NONE, TEEC_NONE);
1981 
1982 	res = TEEC_InvokeCommand(sess, cmd, &op, &org);
1983 
1984 	TEEC_ReleaseSharedMemory(&shm);
1985 
1986 	return res;
1987 }
1988 
Invoke_InitRefAttribute(ADBG_Case_t * c,TEEC_Session * sess,uint32_t cmd,uint32_t attr,uint32_t attr_id,uint32_t buffer)1989 static TEEC_Result Invoke_InitRefAttribute(ADBG_Case_t *c, TEEC_Session *sess,
1990 					   uint32_t cmd, uint32_t attr,
1991 					   uint32_t attr_id, uint32_t buffer)
1992 {
1993 	return Invoke_Simple_Function_v2(c, sess, cmd, attr, attr_id,
1994 					 buffer, 0);
1995 }
1996 
1997 static TEEC_Result
Macro_StoreRefAttribute(ADBG_Case_t * c,TEEC_Session * sess,uint32_t attr,uint32_t buffer,uint32_t attr_id,const void * value_bufptr,size_t value_size)1998 Macro_StoreRefAttribute(ADBG_Case_t *c, TEEC_Session *sess, uint32_t attr,
1999 			uint32_t buffer, uint32_t attr_id,
2000 			const void *value_bufptr, size_t value_size)
2001 {
2002 	TEEC_Result res = TEE_SUCCESS;
2003 
2004 	res = Invoke_StoreAttributeBuffer(c, sess, CMD_DS_StoreBuffer,
2005 					  buffer, value_bufptr, value_size);
2006 	if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
2007 		return res;
2008 
2009 	res = Invoke_InitRefAttribute(c, sess, CMD_DS_InitRefAttribute,
2010 				      attr, attr_id, buffer);
2011 	ADBG_EXPECT_TEEC_SUCCESS(c, res);
2012 	return res;
2013 }
2014 
2015 
2016 
2017 #endif /* XML_DATASTORAGE_API_H_ */
2018