blob: 7b54271e6af95f33d43af974c4593c9ef0cc59bb [file] [log] [blame]
Jean-Philippe Brucker6125ee42023-09-06 16:18:02 +01001/*
2 * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved.
Thomas Fossati5a735232024-05-22 16:58:55 +00003 * Copyright (c) 2024, Linaro Limited and Contributors. All rights reserved.
Jean-Philippe Brucker6125ee42023-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 Fossati5a735232024-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 Brucker6125ee42023-09-06 16:18:02 +010017static const uint8_t sample_platform_token[] = {
Thomas Fossati5a735232024-05-22 16:58:55 +000018 0xd2, 0x84, 0x44, 0xa1, 0x01, 0x38, 0x22, 0xa0,
Tamas Bana96c7cc2024-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,
62 0x42, 0x4c, 0x32, 0x05, 0x58, 0x20, 0x53, 0x78,
Thomas Fossati5a735232024-05-22 16:58:55 +000063 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 Bana96c7cc2024-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,
Thomas Fossati5a735232024-05-22 16:58:55 +0000106 0x42, 0x4c, 0x31, 0x05, 0x58, 0x20, 0x53, 0x78,
107 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 Bana96c7cc2024-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,
Thomas Fossati5a735232024-05-22 16:58:55 +0000116 0x35, 0x36, 0xa4, 0x01, 0x67, 0x53, 0x43, 0x50,
Tamas Bana96c7cc2024-09-04 16:34:56 +0200117 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 Fossati5a735232024-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 Bana96c7cc2024-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 Brucker6125ee42023-09-06 16:18:02 +0100208};
209
210/*
211 * Get the hardcoded platform attestation token as QEMU does not support
Tamas Banfbe7dc82024-02-22 12:03:19 +0100212 * RSE.
Jean-Philippe Brucker6125ee42023-09-06 16:18:02 +0100213 */
214int plat_rmmd_get_cca_attest_token(uintptr_t buf, size_t *len,
Jean-Philippe Brucker67171322024-07-24 11:31:12 +0100215 uintptr_t hash, size_t hash_size,
216 size_t *remaining_len)
Jean-Philippe Brucker6125ee42023-09-06 16:18:02 +0100217{
Jean-Philippe Brucker67171322024-07-24 11:31:12 +0100218 const size_t token_size = sizeof(sample_platform_token);
Jean-Philippe Brucker6125ee42023-09-06 16:18:02 +0100219 (void)hash;
220 (void)hash_size;
221
Jean-Philippe Brucker67171322024-07-24 11:31:12 +0100222 /* Shouldn't happen because RMM uses the whole 4kB shared buffer */
223 if (*len < token_size) {
Jean-Philippe Brucker6125ee42023-09-06 16:18:02 +0100224 return -EINVAL;
225 }
226
Jean-Philippe Brucker67171322024-07-24 11:31:12 +0100227 memcpy((void *)buf, sample_platform_token, token_size);
228 *len = token_size;
229 *remaining_len = 0;
Jean-Philippe Brucker6125ee42023-09-06 16:18:02 +0100230
231 return 0;
232}