blob: 7b54271e6af95f33d43af974c4593c9ef0cc59bb [file] [log] [blame]
Jean-Philippe Bruckerc69e95e2023-09-06 16:18:02 +01001/*
2 * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved.
Thomas Fossatif8554342024-05-22 16:58:55 +00003 * Copyright (c) 2024, Linaro Limited and Contributors. All rights reserved.
Jean-Philippe Bruckerc69e95e2023-09-06 16:18:02 +01004 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8#include <errno.h>
9#include <string.h>
10
11#include <plat/common/platform.h>
12
Thomas Fossatif8554342024-05-22 16:58:55 +000013/*
14 * This is the CBOR serialization of the CCA platform token described at
15 * https://git.trustedfirmware.org/TF-M/tf-m-tools/+/refs/heads/main/iat-verifier/tests/data/cca_example_platform_token.yaml
16 */
Jean-Philippe Bruckerc69e95e2023-09-06 16:18:02 +010017static const uint8_t sample_platform_token[] = {
Thomas Fossatif8554342024-05-22 16:58:55 +000018 0xd2, 0x84, 0x44, 0xa1, 0x01, 0x38, 0x22, 0xa0,
Tamas Ban3ba9fca2024-09-04 16:34:56 +020019 0x59, 0x05, 0x81, 0xa9, 0x19, 0x01, 0x09, 0x78,
20 0x23, 0x74, 0x61, 0x67, 0x3a, 0x61, 0x72, 0x6d,
21 0x2e, 0x63, 0x6f, 0x6d, 0x2c, 0x32, 0x30, 0x32,
22 0x33, 0x3a, 0x63, 0x63, 0x61, 0x5f, 0x70, 0x6c,
23 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x23, 0x31,
24 0x2e, 0x30, 0x2e, 0x30, 0x0a, 0x58, 0x20, 0x0d,
25 0x22, 0xe0, 0x8a, 0x98, 0x46, 0x90, 0x58, 0x48,
26 0x63, 0x18, 0x28, 0x34, 0x89, 0xbd, 0xb3, 0x6f,
27 0x09, 0xdb, 0xef, 0xeb, 0x18, 0x64, 0xdf, 0x43,
28 0x3f, 0xa6, 0xe5, 0x4e, 0xa2, 0xd7, 0x11, 0x19,
29 0x09, 0x5c, 0x58, 0x20, 0x7f, 0x45, 0x4c, 0x46,
30 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
31 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x3e, 0x00,
32 0x01, 0x00, 0x00, 0x00, 0x50, 0x58, 0x00, 0x00,
33 0x00, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00, 0x58,
34 0x21, 0x01, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02,
35 0x01, 0x00, 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a,
36 0x09, 0x08, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12,
37 0x11, 0x10, 0x1f, 0x1e, 0x1d, 0x1c, 0x1b, 0x1a,
38 0x19, 0x18, 0x19, 0x09, 0x61, 0x44, 0xcf, 0xcf,
39 0xcf, 0xcf, 0x19, 0x09, 0x5b, 0x19, 0x30, 0x03,
40 0x19, 0x09, 0x62, 0x67, 0x73, 0x68, 0x61, 0x2d,
41 0x32, 0x35, 0x36, 0x19, 0x09, 0x60, 0x78, 0x3a,
42 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
43 0x76, 0x65, 0x72, 0x61, 0x69, 0x73, 0x6f, 0x6e,
44 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
45 0x2f, 0x2e, 0x77, 0x65, 0x6c, 0x6c, 0x2d, 0x6b,
46 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x76, 0x65, 0x72,
47 0x61, 0x69, 0x73, 0x6f, 0x6e, 0x2f, 0x76, 0x65,
48 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
49 0x6f, 0x6e, 0x19, 0x09, 0x5f, 0x8d, 0xa4, 0x01,
50 0x69, 0x52, 0x53, 0x45, 0x5f, 0x42, 0x4c, 0x31,
51 0x5f, 0x32, 0x05, 0x58, 0x20, 0x53, 0x78, 0x79,
52 0x63, 0x07, 0x53, 0x5d, 0xf3, 0xec, 0x8d, 0x8b,
53 0x15, 0xa2, 0xe2, 0xdc, 0x56, 0x41, 0x41, 0x9c,
54 0x3d, 0x30, 0x60, 0xcf, 0xe3, 0x22, 0x38, 0xc0,
55 0xfa, 0x97, 0x3f, 0x7a, 0xa3, 0x02, 0x58, 0x20,
56 0x9a, 0x27, 0x1f, 0x2a, 0x91, 0x6b, 0x0b, 0x6e,
57 0xe6, 0xce, 0xcb, 0x24, 0x26, 0xf0, 0xb3, 0x20,
58 0x6e, 0xf0, 0x74, 0x57, 0x8b, 0xe5, 0x5d, 0x9b,
59 0xc9, 0x4f, 0x6f, 0x3f, 0xe3, 0xab, 0x86, 0xaa,
60 0x06, 0x67, 0x73, 0x68, 0x61, 0x2d, 0x32, 0x35,
61 0x36, 0xa4, 0x01, 0x67, 0x52, 0x53, 0x45, 0x5f,
Thomas Fossatif8554342024-05-22 16:58:55 +000062 0x42, 0x4c, 0x32, 0x05, 0x58, 0x20, 0x53, 0x78,
63 0x79, 0x63, 0x07, 0x53, 0x5d, 0xf3, 0xec, 0x8d,
64 0x8b, 0x15, 0xa2, 0xe2, 0xdc, 0x56, 0x41, 0x41,
65 0x9c, 0x3d, 0x30, 0x60, 0xcf, 0xe3, 0x22, 0x38,
66 0xc0, 0xfa, 0x97, 0x3f, 0x7a, 0xa3, 0x02, 0x58,
Tamas Ban3ba9fca2024-09-04 16:34:56 +020067 0x20, 0x53, 0xc2, 0x34, 0xe5, 0xe8, 0x47, 0x2b,
68 0x6a, 0xc5, 0x1c, 0x1a, 0xe1, 0xca, 0xb3, 0xfe,
69 0x06, 0xfa, 0xd0, 0x53, 0xbe, 0xb8, 0xeb, 0xfd,
70 0x89, 0x77, 0xb0, 0x10, 0x65, 0x5b, 0xfd, 0xd3,
71 0xc3, 0x06, 0x67, 0x73, 0x68, 0x61, 0x2d, 0x32,
72 0x35, 0x36, 0xa4, 0x01, 0x65, 0x52, 0x53, 0x45,
73 0x5f, 0x53, 0x05, 0x58, 0x20, 0x53, 0x78, 0x79,
74 0x63, 0x07, 0x53, 0x5d, 0xf3, 0xec, 0x8d, 0x8b,
75 0x15, 0xa2, 0xe2, 0xdc, 0x56, 0x41, 0x41, 0x9c,
76 0x3d, 0x30, 0x60, 0xcf, 0xe3, 0x22, 0x38, 0xc0,
77 0xfa, 0x97, 0x3f, 0x7a, 0xa3, 0x02, 0x58, 0x20,
78 0x11, 0x21, 0xcf, 0xcc, 0xd5, 0x91, 0x3f, 0x0a,
79 0x63, 0xfe, 0xc4, 0x0a, 0x6f, 0xfd, 0x44, 0xea,
80 0x64, 0xf9, 0xdc, 0x13, 0x5c, 0x66, 0x63, 0x4b,
81 0xa0, 0x01, 0xd1, 0x0b, 0xcf, 0x43, 0x02, 0xa2,
82 0x06, 0x67, 0x73, 0x68, 0x61, 0x2d, 0x32, 0x35,
83 0x36, 0xa4, 0x01, 0x66, 0x41, 0x50, 0x5f, 0x42,
84 0x4c, 0x31, 0x05, 0x58, 0x20, 0x53, 0x78, 0x79,
85 0x63, 0x07, 0x53, 0x5d, 0xf3, 0xec, 0x8d, 0x8b,
86 0x15, 0xa2, 0xe2, 0xdc, 0x56, 0x41, 0x41, 0x9c,
87 0x3d, 0x30, 0x60, 0xcf, 0xe3, 0x22, 0x38, 0xc0,
88 0xfa, 0x97, 0x3f, 0x7a, 0xa3, 0x02, 0x58, 0x20,
89 0x15, 0x71, 0xb5, 0xec, 0x78, 0xbd, 0x68, 0x51,
90 0x2b, 0xf7, 0x83, 0x0b, 0xb6, 0xa2, 0xa4, 0x4b,
91 0x20, 0x47, 0xc7, 0xdf, 0x57, 0xbc, 0xe7, 0x9e,
92 0xb8, 0xa1, 0xc0, 0xe5, 0xbe, 0xa0, 0xa5, 0x01,
93 0x06, 0x67, 0x73, 0x68, 0x61, 0x2d, 0x32, 0x35,
94 0x36, 0xa4, 0x01, 0x66, 0x41, 0x50, 0x5f, 0x42,
95 0x4c, 0x32, 0x05, 0x58, 0x20, 0x53, 0x78, 0x79,
96 0x63, 0x07, 0x53, 0x5d, 0xf3, 0xec, 0x8d, 0x8b,
97 0x15, 0xa2, 0xe2, 0xdc, 0x56, 0x41, 0x41, 0x9c,
98 0x3d, 0x30, 0x60, 0xcf, 0xe3, 0x22, 0x38, 0xc0,
99 0xfa, 0x97, 0x3f, 0x7a, 0xa3, 0x02, 0x58, 0x20,
100 0x10, 0x15, 0x9b, 0xaf, 0x26, 0x2b, 0x43, 0xa9,
101 0x2d, 0x95, 0xdb, 0x59, 0xda, 0xe1, 0xf7, 0x2c,
102 0x64, 0x51, 0x27, 0x30, 0x16, 0x61, 0xe0, 0xa3,
103 0xce, 0x4e, 0x38, 0xb2, 0x95, 0xa9, 0x7c, 0x58,
104 0x06, 0x67, 0x73, 0x68, 0x61, 0x2d, 0x32, 0x35,
105 0x36, 0xa4, 0x01, 0x67, 0x53, 0x43, 0x50, 0x5f,
106 0x42, 0x4c, 0x31, 0x05, 0x58, 0x20, 0x53, 0x78,
Thomas Fossatif8554342024-05-22 16:58:55 +0000107 0x79, 0x63, 0x07, 0x53, 0x5d, 0xf3, 0xec, 0x8d,
108 0x8b, 0x15, 0xa2, 0xe2, 0xdc, 0x56, 0x41, 0x41,
109 0x9c, 0x3d, 0x30, 0x60, 0xcf, 0xe3, 0x22, 0x38,
110 0xc0, 0xfa, 0x97, 0x3f, 0x7a, 0xa3, 0x02, 0x58,
Tamas Ban3ba9fca2024-09-04 16:34:56 +0200111 0x20, 0x10, 0x12, 0x2e, 0x85, 0x6b, 0x3f, 0xcd,
112 0x49, 0xf0, 0x63, 0x63, 0x63, 0x17, 0x47, 0x61,
113 0x49, 0xcb, 0x73, 0x0a, 0x1a, 0xa1, 0xcf, 0xaa,
114 0xd8, 0x18, 0x55, 0x2b, 0x72, 0xf5, 0x6d, 0x6f,
115 0x68, 0x06, 0x67, 0x73, 0x68, 0x61, 0x2d, 0x32,
116 0x35, 0x36, 0xa4, 0x01, 0x67, 0x53, 0x43, 0x50,
117 0x5f, 0x42, 0x4c, 0x32, 0x05, 0x58, 0x20, 0xf1,
118 0x4b, 0x49, 0x87, 0x90, 0x4b, 0xcb, 0x58, 0x14,
119 0xe4, 0x45, 0x9a, 0x05, 0x7e, 0xd4, 0xd2, 0x0f,
120 0x58, 0xa6, 0x33, 0x15, 0x22, 0x88, 0xa7, 0x61,
121 0x21, 0x4d, 0xcd, 0x28, 0x78, 0x0b, 0x56, 0x02,
122 0x58, 0x20, 0xaa, 0x67, 0xa1, 0x69, 0xb0, 0xbb,
123 0xa2, 0x17, 0xaa, 0x0a, 0xa8, 0x8a, 0x65, 0x34,
124 0x69, 0x20, 0xc8, 0x4c, 0x42, 0x44, 0x7c, 0x36,
125 0xba, 0x5f, 0x7e, 0xa6, 0x5f, 0x42, 0x2c, 0x1f,
126 0xe5, 0xd8, 0x06, 0x67, 0x73, 0x68, 0x61, 0x2d,
127 0x32, 0x35, 0x36, 0xa4, 0x01, 0x67, 0x41, 0x50,
128 0x5f, 0x42, 0x4c, 0x33, 0x31, 0x05, 0x58, 0x20,
129 0x53, 0x78, 0x79, 0x63, 0x07, 0x53, 0x5d, 0xf3,
130 0xec, 0x8d, 0x8b, 0x15, 0xa2, 0xe2, 0xdc, 0x56,
131 0x41, 0x41, 0x9c, 0x3d, 0x30, 0x60, 0xcf, 0xe3,
132 0x22, 0x38, 0xc0, 0xfa, 0x97, 0x3f, 0x7a, 0xa3,
133 0x02, 0x58, 0x20, 0x2e, 0x6d, 0x31, 0xa5, 0x98,
134 0x3a, 0x91, 0x25, 0x1b, 0xfa, 0xe5, 0xae, 0xfa,
135 0x1c, 0x0a, 0x19, 0xd8, 0xba, 0x3c, 0xf6, 0x01,
136 0xd0, 0xe8, 0xa7, 0x06, 0xb4, 0xcf, 0xa9, 0x66,
137 0x1a, 0x6b, 0x8a, 0x06, 0x67, 0x73, 0x68, 0x61,
138 0x2d, 0x32, 0x35, 0x36, 0xa4, 0x01, 0x63, 0x52,
139 0x4d, 0x4d, 0x05, 0x58, 0x20, 0x53, 0x78, 0x79,
140 0x63, 0x07, 0x53, 0x5d, 0xf3, 0xec, 0x8d, 0x8b,
141 0x15, 0xa2, 0xe2, 0xdc, 0x56, 0x41, 0x41, 0x9c,
142 0x3d, 0x30, 0x60, 0xcf, 0xe3, 0x22, 0x38, 0xc0,
143 0xfa, 0x97, 0x3f, 0x7a, 0xa3, 0x02, 0x58, 0x20,
144 0xa1, 0xfb, 0x50, 0xe6, 0xc8, 0x6f, 0xae, 0x16,
145 0x79, 0xef, 0x33, 0x51, 0x29, 0x6f, 0xd6, 0x71,
146 0x34, 0x11, 0xa0, 0x8c, 0xf8, 0xdd, 0x17, 0x90,
147 0xa4, 0xfd, 0x05, 0xfa, 0xe8, 0x68, 0x81, 0x64,
148 0x06, 0x67, 0x73, 0x68, 0x61, 0x2d, 0x32, 0x35,
149 0x36, 0xa4, 0x01, 0x69, 0x48, 0x57, 0x5f, 0x43,
150 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x05, 0x58, 0x20,
151 0x53, 0x78, 0x79, 0x63, 0x07, 0x53, 0x5d, 0xf3,
152 0xec, 0x8d, 0x8b, 0x15, 0xa2, 0xe2, 0xdc, 0x56,
153 0x41, 0x41, 0x9c, 0x3d, 0x30, 0x60, 0xcf, 0xe3,
154 0x22, 0x38, 0xc0, 0xfa, 0x97, 0x3f, 0x7a, 0xa3,
155 0x02, 0x58, 0x20, 0x1a, 0x25, 0x24, 0x02, 0x97,
156 0x2f, 0x60, 0x57, 0xfa, 0x53, 0xcc, 0x17, 0x2b,
157 0x52, 0xb9, 0xff, 0xca, 0x69, 0x8e, 0x18, 0x31,
158 0x1f, 0xac, 0xd0, 0xf3, 0xb0, 0x6e, 0xca, 0xae,
159 0xf7, 0x9e, 0x17, 0x06, 0x67, 0x73, 0x68, 0x61,
160 0x2d, 0x32, 0x35, 0x36, 0xa4, 0x01, 0x69, 0x46,
161 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47,
162 0x05, 0x58, 0x20, 0x53, 0x78, 0x79, 0x63, 0x07,
163 0x53, 0x5d, 0xf3, 0xec, 0x8d, 0x8b, 0x15, 0xa2,
164 0xe2, 0xdc, 0x56, 0x41, 0x41, 0x9c, 0x3d, 0x30,
165 0x60, 0xcf, 0xe3, 0x22, 0x38, 0xc0, 0xfa, 0x97,
166 0x3f, 0x7a, 0xa3, 0x02, 0x58, 0x20, 0x9a, 0x92,
167 0xad, 0xbc, 0x0c, 0xee, 0x38, 0xef, 0x65, 0x8c,
168 0x71, 0xce, 0x1b, 0x1b, 0xf8, 0xc6, 0x56, 0x68,
169 0xf1, 0x66, 0xbf, 0xb2, 0x13, 0x64, 0x4c, 0x89,
170 0x5c, 0xcb, 0x1a, 0xd0, 0x7a, 0x25, 0x06, 0x67,
171 0x73, 0x68, 0x61, 0x2d, 0x32, 0x35, 0x36, 0xa4,
172 0x01, 0x6c, 0x54, 0x42, 0x5f, 0x46, 0x57, 0x5f,
Thomas Fossatif8554342024-05-22 16:58:55 +0000173 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x05, 0x58,
174 0x20, 0x53, 0x78, 0x79, 0x63, 0x07, 0x53, 0x5d,
175 0xf3, 0xec, 0x8d, 0x8b, 0x15, 0xa2, 0xe2, 0xdc,
176 0x56, 0x41, 0x41, 0x9c, 0x3d, 0x30, 0x60, 0xcf,
177 0xe3, 0x22, 0x38, 0xc0, 0xfa, 0x97, 0x3f, 0x7a,
Tamas Ban3ba9fca2024-09-04 16:34:56 +0200178 0xa3, 0x02, 0x58, 0x20, 0x23, 0x89, 0x03, 0x18,
179 0x0c, 0xc1, 0x04, 0xec, 0x2c, 0x5d, 0x8b, 0x3f,
180 0x20, 0xc5, 0xbc, 0x61, 0xb3, 0x89, 0xec, 0x0a,
181 0x96, 0x7d, 0xf8, 0xcc, 0x20, 0x8c, 0xdc, 0x7c,
182 0xd4, 0x54, 0x17, 0x4f, 0x06, 0x67, 0x73, 0x68,
183 0x61, 0x2d, 0x32, 0x35, 0x36, 0xa4, 0x01, 0x6d,
184 0x53, 0x4f, 0x43, 0x5f, 0x46, 0x57, 0x5f, 0x43,
185 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x05, 0x58, 0x20,
186 0x53, 0x78, 0x79, 0x63, 0x07, 0x53, 0x5d, 0xf3,
187 0xec, 0x8d, 0x8b, 0x15, 0xa2, 0xe2, 0xdc, 0x56,
188 0x41, 0x41, 0x9c, 0x3d, 0x30, 0x60, 0xcf, 0xe3,
189 0x22, 0x38, 0xc0, 0xfa, 0x97, 0x3f, 0x7a, 0xa3,
190 0x02, 0x58, 0x20, 0xe6, 0xc2, 0x1e, 0x8d, 0x26,
191 0x0f, 0xe7, 0x18, 0x82, 0xde, 0xbd, 0xb3, 0x39,
192 0xd2, 0x40, 0x2a, 0x2c, 0xa7, 0x64, 0x85, 0x29,
193 0xbc, 0x23, 0x03, 0xf4, 0x86, 0x49, 0xbc, 0xe0,
194 0x38, 0x00, 0x17, 0x06, 0x67, 0x73, 0x68, 0x61,
195 0x2d, 0x32, 0x35, 0x36, 0x58, 0x60, 0x31, 0xd0,
196 0x4d, 0x52, 0xcc, 0xde, 0x95, 0x2c, 0x1e, 0x32,
197 0xcb, 0xa1, 0x81, 0x88, 0x5a, 0x40, 0xb8, 0xcc,
198 0x38, 0xe0, 0x52, 0x8c, 0x1e, 0x89, 0x58, 0x98,
199 0x07, 0x64, 0x2a, 0xa5, 0xe3, 0xf2, 0xbc, 0x37,
200 0xf9, 0x53, 0x74, 0x50, 0x6b, 0xff, 0x4d, 0x2e,
201 0x4b, 0xe7, 0x06, 0x3c, 0x4d, 0x72, 0x41, 0x92,
202 0x70, 0xc7, 0x22, 0xe8, 0xd4, 0xd9, 0x3e, 0xe8,
203 0xb6, 0xc9, 0xfa, 0xce, 0x3b, 0x43, 0xc9, 0x76,
204 0x1a, 0x49, 0x94, 0x1a, 0xb6, 0xf3, 0x8f, 0xfd,
205 0xff, 0x49, 0x6a, 0xd4, 0x63, 0xb4, 0xcb, 0xfa,
206 0x11, 0xd8, 0x3e, 0x23, 0xe3, 0x1f, 0x7f, 0x62,
207 0x32, 0x9d, 0xe3, 0x0c, 0x1c, 0xc8
Jean-Philippe Bruckerc69e95e2023-09-06 16:18:02 +0100208};
209
210/*
211 * Get the hardcoded platform attestation token as QEMU does not support
Tamas Ban59549e62024-02-22 12:03:19 +0100212 * RSE.
Jean-Philippe Bruckerc69e95e2023-09-06 16:18:02 +0100213 */
214int plat_rmmd_get_cca_attest_token(uintptr_t buf, size_t *len,
Jean-Philippe Brucker9248ee02024-07-24 11:31:12 +0100215 uintptr_t hash, size_t hash_size,
216 size_t *remaining_len)
Jean-Philippe Bruckerc69e95e2023-09-06 16:18:02 +0100217{
Jean-Philippe Brucker9248ee02024-07-24 11:31:12 +0100218 const size_t token_size = sizeof(sample_platform_token);
Jean-Philippe Bruckerc69e95e2023-09-06 16:18:02 +0100219 (void)hash;
220 (void)hash_size;
221
Jean-Philippe Brucker9248ee02024-07-24 11:31:12 +0100222 /* Shouldn't happen because RMM uses the whole 4kB shared buffer */
223 if (*len < token_size) {
Jean-Philippe Bruckerc69e95e2023-09-06 16:18:02 +0100224 return -EINVAL;
225 }
226
Jean-Philippe Brucker9248ee02024-07-24 11:31:12 +0100227 memcpy((void *)buf, sample_platform_token, token_size);
228 *len = token_size;
229 *remaining_len = 0;
Jean-Philippe Bruckerc69e95e2023-09-06 16:18:02 +0100230
231 return 0;
232}