blob: 44498a85738e942cc2bd9469453bc5fa596c9eea [file] [log] [blame]
Tamas Banc034b732022-02-11 15:24:05 +01001/*
2 * Copyright (c) 2018-2022, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8#include <initial_attestation.h>
9#include <psa/client.h>
10#include <psa_manifest/sid.h>
11
Tamas Banc9ccc272022-01-18 16:20:47 +010012#if !PLAT_RSS_NOT_SUPPORTED
Tamas Banc034b732022-02-11 15:24:05 +010013psa_status_t
14psa_initial_attest_get_token(const uint8_t *auth_challenge,
15 size_t challenge_size,
16 uint8_t *token_buf,
17 size_t token_buf_size,
18 size_t *token_size)
19{
20 psa_status_t status;
21 psa_invec in_vec[] = {
22 {auth_challenge, challenge_size}
23 };
24 psa_outvec out_vec[] = {
25 {token_buf, token_buf_size},
26 };
27
28 status = psa_call(RSS_ATTESTATION_SERVICE_HANDLE, RSS_ATTEST_GET_TOKEN,
29 in_vec, IOVEC_LEN(in_vec),
30 out_vec, IOVEC_LEN(out_vec));
31
32 if (status == PSA_SUCCESS) {
33 *token_size = out_vec[0].len;
34 }
35
36 return status;
37}
Tamas Banc9ccc272022-01-18 16:20:47 +010038
39#else /* !PLAT_RSS_NOT_SUPPORTED */
40
41#include <string.h>
42
43static const uint8_t platform_token[] = {
44 0xD2, 0x84, 0x43, 0xA1, 0x01, 0x26, 0xA0, 0x59,
45 0x02, 0xBE, 0xAA, 0x3A, 0x00, 0x01, 0x24, 0xFF,
46 0x58, 0x20, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
47 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
48 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
49 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
50 0xAB, 0xAB, 0x3A, 0x00, 0x01, 0x24, 0xFB, 0x58,
51 0x20, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
52 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE,
53 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
54 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE,
55 0xBF, 0x3A, 0x00, 0x01, 0x25, 0x00, 0x58, 0x21,
56 0x01, 0xFA, 0x58, 0x75, 0x5F, 0x65, 0x86, 0x27,
57 0xCE, 0x54, 0x60, 0xF2, 0x9B, 0x75, 0x29, 0x67,
58 0x13, 0x24, 0x8C, 0xAE, 0x7A, 0xD9, 0xE2, 0x98,
59 0x4B, 0x90, 0x28, 0x0E, 0xFC, 0xBC, 0xB5, 0x02,
60 0x48, 0x3A, 0x00, 0x01, 0x24, 0xFA, 0x58, 0x20,
61 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
62 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
63 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
64 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
65 0x3A, 0x00, 0x01, 0x24, 0xF8, 0x20, 0x3A, 0x00,
66 0x01, 0x24, 0xF9, 0x00, 0x3A, 0x00, 0x01, 0x24,
67 0xFD, 0x85, 0xA5, 0x05, 0x58, 0x20, 0x00, 0x00,
68 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
70 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
71 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x60,
72 0x01, 0x65, 0x42, 0x4C, 0x31, 0x5F, 0x32, 0x06,
73 0x66, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x02,
74 0x58, 0x20, 0xF8, 0xB7, 0xCE, 0xAD, 0x9B, 0xE4,
75 0x5A, 0x8F, 0x5C, 0x52, 0x6F, 0x0C, 0x05, 0x25,
76 0x8F, 0xF3, 0xE9, 0x81, 0xDC, 0xBC, 0xF2, 0x05,
77 0x7F, 0x33, 0xF6, 0xBB, 0xDC, 0xD9, 0x4D, 0xA2,
78 0x34, 0x3A, 0xA5, 0x05, 0x58, 0x20, 0x00, 0x00,
79 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
81 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
82 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x67,
83 0x31, 0x2E, 0x37, 0x2E, 0x32, 0x2B, 0x30, 0x01,
84 0x63, 0x42, 0x4C, 0x32, 0x06, 0x66, 0x53, 0x48,
85 0x41, 0x32, 0x35, 0x36, 0x02, 0x58, 0x20, 0x3A,
86 0xE5, 0x9E, 0x40, 0xA9, 0x6B, 0xD5, 0x29, 0x1C,
87 0xAB, 0x7A, 0x5F, 0xBD, 0x1F, 0x9A, 0xA6, 0x52,
88 0xFB, 0x77, 0x7D, 0xA3, 0xEC, 0x9C, 0x29, 0xBC,
89 0xE6, 0x5B, 0x3B, 0x43, 0xFC, 0x9D, 0x26, 0xA5,
90 0x05, 0x58, 0x20, 0xBF, 0xE6, 0xD8, 0x6F, 0x88,
91 0x26, 0xF4, 0xFF, 0x97, 0xFB, 0x96, 0xC4, 0xE6,
92 0xFB, 0xC4, 0x99, 0x3E, 0x46, 0x19, 0xFC, 0x56,
93 0x5D, 0xA2, 0x6A, 0xDF, 0x34, 0xC3, 0x29, 0x48,
94 0x9A, 0xDC, 0x38, 0x04, 0x67, 0x31, 0x2E, 0x35,
95 0x2E, 0x30, 0x2B, 0x30, 0x01, 0x64, 0x52, 0x54,
96 0x5F, 0x30, 0x06, 0x66, 0x53, 0x48, 0x41, 0x32,
97 0x35, 0x36, 0x02, 0x58, 0x20, 0x47, 0x94, 0x9D,
98 0x27, 0x33, 0x82, 0x45, 0x1A, 0xDD, 0x25, 0xF4,
99 0x9A, 0x89, 0x6F, 0x5F, 0xD9, 0xB0, 0xE8, 0x14,
100 0xD3, 0xA4, 0x9B, 0x53, 0xB0, 0x44, 0x0B, 0xCF,
101 0x32, 0x1A, 0xC4, 0xD2, 0x65, 0xA5, 0x05, 0x58,
102 0x20, 0xB3, 0x60, 0xCA, 0xF5, 0xC9, 0x8C, 0x6B,
103 0x94, 0x2A, 0x48, 0x82, 0xFA, 0x9D, 0x48, 0x23,
104 0xEF, 0xB1, 0x66, 0xA9, 0xEF, 0x6A, 0x6E, 0x4A,
105 0xA3, 0x7C, 0x19, 0x19, 0xED, 0x1F, 0xCC, 0xC0,
106 0x49, 0x04, 0x67, 0x30, 0x2E, 0x30, 0x2E, 0x37,
107 0x2B, 0x30, 0x01, 0x64, 0x52, 0x54, 0x5F, 0x31,
108 0x06, 0x66, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36,
109 0x02, 0x58, 0x20, 0xCD, 0x38, 0xBE, 0xC8, 0xB7,
110 0xC0, 0x9E, 0xD5, 0x24, 0x30, 0xFE, 0xC8, 0xD0,
111 0x19, 0x12, 0x56, 0xB2, 0x7A, 0xA5, 0x53, 0x6F,
112 0xBC, 0x7D, 0x09, 0xCA, 0x11, 0xDD, 0x90, 0xD7,
113 0xD6, 0x70, 0xFD, 0xA5, 0x05, 0x58, 0x20, 0xAA,
114 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
115 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
116 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
117 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x04,
118 0x60, 0x01, 0x60, 0x06, 0x66, 0x53, 0x48, 0x41,
119 0x32, 0x35, 0x36, 0x02, 0x58, 0x20, 0x28, 0x3D,
120 0x0C, 0x25, 0x22, 0x0C, 0x87, 0x46, 0xA0, 0x58,
121 0x64, 0x6C, 0x0B, 0x14, 0x37, 0x39, 0x40, 0x9D,
122 0x2D, 0x11, 0xD1, 0xCC, 0x54, 0x51, 0xB4, 0x29,
123 0x22, 0xCD, 0x70, 0x92, 0x71, 0xC3, 0x3A, 0x00,
124 0x01, 0x25, 0x01, 0x77, 0x77, 0x77, 0x77, 0x2E,
125 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x66,
126 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x2E,
127 0x6F, 0x72, 0x67, 0x3A, 0x00, 0x01, 0x24, 0xF7,
128 0x71, 0x50, 0x53, 0x41, 0x5F, 0x49, 0x4F, 0x54,
129 0x5F, 0x50, 0x52, 0x4F, 0x46, 0x49, 0x4C, 0x45,
130 0x5F, 0x31, 0x3A, 0x00, 0x01, 0x24, 0xFC, 0x70,
131 0x30, 0x36, 0x30, 0x34, 0x35, 0x36, 0x35, 0x32,
132 0x37, 0x32, 0x38, 0x32, 0x39, 0x31, 0x30, 0x30,
133 0x58, 0x40, 0x1E, 0x0D, 0x2B, 0xD8, 0x7A, 0xC9,
134 0x2D, 0xCB, 0x73, 0xD1, 0x42, 0x2F, 0xBF, 0xDA,
135 0x24, 0x71, 0xE2, 0xAF, 0xEA, 0x48, 0x60, 0x17,
136 0x23, 0x75, 0x64, 0xAC, 0xCC, 0x23, 0xA2, 0x67,
137 0xC4, 0xE7, 0x8F, 0x1C, 0x7C, 0x68, 0x49, 0x42,
138 0x4D, 0xDA, 0xC6, 0xD6, 0x21, 0x1C, 0xAA, 0x00,
139 0xDA, 0x1E, 0x68, 0x56, 0xA3, 0x48, 0xEE, 0xA7,
140 0x92, 0xA9, 0x09, 0x83, 0x42, 0x04, 0x06, 0x9E,
141 0x62, 0xBB
142};
143
144psa_status_t
145psa_initial_attest_get_token(const uint8_t *auth_challenge,
146 size_t challenge_size,
147 uint8_t *token_buf,
148 size_t token_buf_size,
149 size_t *token_size)
150{
151 (void)auth_challenge;
152 (void)challenge_size;
153
154 if (token_buf_size < sizeof(platform_token)) {
155 return PSA_ERROR_BUFFER_TOO_SMALL;
156 }
157
158 (void)memcpy(token_buf, platform_token, sizeof(platform_token));
159 *token_size = sizeof(platform_token);
160
161 return PSA_SUCCESS;
162}
163#endif /* !PLAT_RSS_NOT_SUPPORTED */