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