1 /*
2  *  X.509 test certificates
3  *
4  *  Copyright The Mbed TLS Contributors
5  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6  */
7 
8 #include "tf_psa_crypto_common.h"
9 
10 #include <test/certs.h>
11 
12 #include "mbedtls/build_info.h"
13 
14 #include "mbedtls/pk.h"
15 #if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
16 #include <mbedtls/private/pk_private.h>
17 #endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
18 
19 #include "test/test_certs.h"
20 
21 /*
22  *
23  * Test certificates and keys as C variables
24  *
25  */
26 
27 /*
28  * CA
29  */
30 
31 const char mbedtls_test_ca_crt_ec_pem[]           = TEST_CA_CRT_EC_PEM;
32 const char mbedtls_test_ca_key_ec_pem[]           = TEST_CA_KEY_EC_PEM;
33 const char mbedtls_test_ca_pwd_ec_pem[]           = TEST_CA_PWD_EC_PEM;
34 const char mbedtls_test_ca_key_rsa_pem[]          = TEST_CA_KEY_RSA_PEM;
35 const char mbedtls_test_ca_pwd_rsa_pem[]          = TEST_CA_PWD_RSA_PEM;
36 const char mbedtls_test_ca_crt_rsa_sha1_pem[]     = TEST_CA_CRT_RSA_SHA1_PEM;
37 const char mbedtls_test_ca_crt_rsa_sha256_pem[]   = TEST_CA_CRT_RSA_SHA256_PEM;
38 
39 const unsigned char mbedtls_test_ca_crt_ec_der[]   = TEST_CA_CRT_EC_DER;
40 const unsigned char mbedtls_test_ca_key_ec_der[]   = TEST_CA_KEY_EC_DER;
41 const unsigned char mbedtls_test_ca_key_rsa_der[]  = TEST_CA_KEY_RSA_DER;
42 const unsigned char mbedtls_test_ca_crt_rsa_sha1_der[]   =
43     TEST_CA_CRT_RSA_SHA1_DER;
44 const unsigned char mbedtls_test_ca_crt_rsa_sha256_der[] =
45     TEST_CA_CRT_RSA_SHA256_DER;
46 
47 const size_t mbedtls_test_ca_crt_ec_pem_len =
48     sizeof(mbedtls_test_ca_crt_ec_pem);
49 const size_t mbedtls_test_ca_key_ec_pem_len =
50     sizeof(mbedtls_test_ca_key_ec_pem);
51 const size_t mbedtls_test_ca_pwd_ec_pem_len =
52     sizeof(mbedtls_test_ca_pwd_ec_pem) - 1;
53 const size_t mbedtls_test_ca_key_rsa_pem_len =
54     sizeof(mbedtls_test_ca_key_rsa_pem);
55 const size_t mbedtls_test_ca_pwd_rsa_pem_len =
56     sizeof(mbedtls_test_ca_pwd_rsa_pem) - 1;
57 const size_t mbedtls_test_ca_crt_rsa_sha1_pem_len =
58     sizeof(mbedtls_test_ca_crt_rsa_sha1_pem);
59 const size_t mbedtls_test_ca_crt_rsa_sha256_pem_len =
60     sizeof(mbedtls_test_ca_crt_rsa_sha256_pem);
61 
62 const size_t mbedtls_test_ca_crt_ec_der_len =
63     sizeof(mbedtls_test_ca_crt_ec_der);
64 const size_t mbedtls_test_ca_key_ec_der_len =
65     sizeof(mbedtls_test_ca_key_ec_der);
66 const size_t mbedtls_test_ca_pwd_ec_der_len = 0;
67 const size_t mbedtls_test_ca_key_rsa_der_len =
68     sizeof(mbedtls_test_ca_key_rsa_der);
69 const size_t mbedtls_test_ca_pwd_rsa_der_len = 0;
70 const size_t mbedtls_test_ca_crt_rsa_sha1_der_len =
71     sizeof(mbedtls_test_ca_crt_rsa_sha1_der);
72 const size_t mbedtls_test_ca_crt_rsa_sha256_der_len =
73     sizeof(mbedtls_test_ca_crt_rsa_sha256_der);
74 
75 /*
76  * Server
77  */
78 
79 const char mbedtls_test_srv_crt_ec_pem[]           = TEST_SRV_CRT_EC_PEM;
80 const char mbedtls_test_srv_key_ec_pem[]           = TEST_SRV_KEY_EC_PEM;
81 const char mbedtls_test_srv_pwd_ec_pem[]           = "";
82 const char mbedtls_test_srv_key_rsa_pem[]          = TEST_SRV_KEY_RSA_PEM;
83 const char mbedtls_test_srv_pwd_rsa_pem[]          = "";
84 const char mbedtls_test_srv_crt_rsa_sha1_pem[]     = TEST_SRV_CRT_RSA_SHA1_PEM;
85 const char mbedtls_test_srv_crt_rsa_sha256_pem[]   = TEST_SRV_CRT_RSA_SHA256_PEM;
86 
87 const unsigned char mbedtls_test_srv_crt_ec_der[]   = TEST_SRV_CRT_EC_DER;
88 const unsigned char mbedtls_test_srv_key_ec_der[]   = TEST_SRV_KEY_EC_DER;
89 const unsigned char mbedtls_test_srv_key_rsa_der[]  = TEST_SRV_KEY_RSA_DER;
90 const unsigned char mbedtls_test_srv_crt_rsa_sha1_der[]   =
91     TEST_SRV_CRT_RSA_SHA1_DER;
92 const unsigned char mbedtls_test_srv_crt_rsa_sha256_der[] =
93     TEST_SRV_CRT_RSA_SHA256_DER;
94 
95 const size_t mbedtls_test_srv_crt_ec_pem_len =
96     sizeof(mbedtls_test_srv_crt_ec_pem);
97 const size_t mbedtls_test_srv_key_ec_pem_len =
98     sizeof(mbedtls_test_srv_key_ec_pem);
99 const size_t mbedtls_test_srv_pwd_ec_pem_len =
100     sizeof(mbedtls_test_srv_pwd_ec_pem) - 1;
101 const size_t mbedtls_test_srv_key_rsa_pem_len =
102     sizeof(mbedtls_test_srv_key_rsa_pem);
103 const size_t mbedtls_test_srv_pwd_rsa_pem_len =
104     sizeof(mbedtls_test_srv_pwd_rsa_pem) - 1;
105 const size_t mbedtls_test_srv_crt_rsa_sha1_pem_len =
106     sizeof(mbedtls_test_srv_crt_rsa_sha1_pem);
107 const size_t mbedtls_test_srv_crt_rsa_sha256_pem_len =
108     sizeof(mbedtls_test_srv_crt_rsa_sha256_pem);
109 
110 const size_t mbedtls_test_srv_crt_ec_der_len =
111     sizeof(mbedtls_test_srv_crt_ec_der);
112 const size_t mbedtls_test_srv_key_ec_der_len =
113     sizeof(mbedtls_test_srv_key_ec_der);
114 const size_t mbedtls_test_srv_pwd_ec_der_len = 0;
115 const size_t mbedtls_test_srv_key_rsa_der_len =
116     sizeof(mbedtls_test_srv_key_rsa_der);
117 const size_t mbedtls_test_srv_pwd_rsa_der_len = 0;
118 const size_t mbedtls_test_srv_crt_rsa_sha1_der_len =
119     sizeof(mbedtls_test_srv_crt_rsa_sha1_der);
120 const size_t mbedtls_test_srv_crt_rsa_sha256_der_len =
121     sizeof(mbedtls_test_srv_crt_rsa_sha256_der);
122 
123 /*
124  * Client
125  */
126 
127 const char mbedtls_test_cli_crt_ec_pem[]   = TEST_CLI_CRT_EC_PEM;
128 const char mbedtls_test_cli_key_ec_pem[]   = TEST_CLI_KEY_EC_PEM;
129 const char mbedtls_test_cli_pwd_ec_pem[]   = "";
130 const char mbedtls_test_cli_key_rsa_pem[]  = TEST_CLI_KEY_RSA_PEM;
131 const char mbedtls_test_cli_pwd_rsa_pem[]  = "";
132 const char mbedtls_test_cli_crt_rsa_pem[]  = TEST_CLI_CRT_RSA_PEM;
133 
134 const unsigned char mbedtls_test_cli_crt_ec_der[]   = TEST_CLI_CRT_EC_DER;
135 const unsigned char mbedtls_test_cli_key_ec_der[]   = TEST_CLI_KEY_EC_DER;
136 const unsigned char mbedtls_test_cli_key_rsa_der[]  = TEST_CLI_KEY_RSA_DER;
137 const unsigned char mbedtls_test_cli_crt_rsa_der[]  = TEST_CLI_CRT_RSA_DER;
138 
139 const size_t mbedtls_test_cli_crt_ec_pem_len =
140     sizeof(mbedtls_test_cli_crt_ec_pem);
141 const size_t mbedtls_test_cli_key_ec_pem_len =
142     sizeof(mbedtls_test_cli_key_ec_pem);
143 const size_t mbedtls_test_cli_pwd_ec_pem_len =
144     sizeof(mbedtls_test_cli_pwd_ec_pem) - 1;
145 const size_t mbedtls_test_cli_key_rsa_pem_len =
146     sizeof(mbedtls_test_cli_key_rsa_pem);
147 const size_t mbedtls_test_cli_pwd_rsa_pem_len =
148     sizeof(mbedtls_test_cli_pwd_rsa_pem) - 1;
149 const size_t mbedtls_test_cli_crt_rsa_pem_len =
150     sizeof(mbedtls_test_cli_crt_rsa_pem);
151 
152 const size_t mbedtls_test_cli_crt_ec_der_len =
153     sizeof(mbedtls_test_cli_crt_ec_der);
154 const size_t mbedtls_test_cli_key_ec_der_len =
155     sizeof(mbedtls_test_cli_key_ec_der);
156 const size_t mbedtls_test_cli_key_rsa_der_len =
157     sizeof(mbedtls_test_cli_key_rsa_der);
158 const size_t mbedtls_test_cli_crt_rsa_der_len =
159     sizeof(mbedtls_test_cli_crt_rsa_der);
160 
161 /*
162  *
163  * Definitions of test CRTs without specification of all parameters, choosing
164  * them automatically according to the config. For example, mbedtls_test_ca_crt
165  * is one of mbedtls_test_ca_crt_{rsa|ec}_{sha1|sha256}_{pem|der}.
166  *
167  */
168 
169 /*
170  * Dispatch between PEM and DER according to config
171  */
172 
173 #if defined(MBEDTLS_PEM_PARSE_C)
174 
175 /* PEM encoded test CA certificates and keys */
176 
177 #define TEST_CA_KEY_RSA        TEST_CA_KEY_RSA_PEM
178 #define TEST_CA_PWD_RSA        TEST_CA_PWD_RSA_PEM
179 #define TEST_CA_CRT_RSA_SHA256 TEST_CA_CRT_RSA_SHA256_PEM
180 #define TEST_CA_CRT_RSA_SHA1   TEST_CA_CRT_RSA_SHA1_PEM
181 #define TEST_CA_KEY_EC         TEST_CA_KEY_EC_PEM
182 #define TEST_CA_PWD_EC         TEST_CA_PWD_EC_PEM
183 #define TEST_CA_CRT_EC         TEST_CA_CRT_EC_PEM
184 
185 /* PEM encoded test server certificates and keys */
186 
187 #define TEST_SRV_KEY_RSA        TEST_SRV_KEY_RSA_PEM
188 #define TEST_SRV_PWD_RSA        ""
189 #define TEST_SRV_CRT_RSA_SHA256 TEST_SRV_CRT_RSA_SHA256_PEM
190 #define TEST_SRV_CRT_RSA_SHA1   TEST_SRV_CRT_RSA_SHA1_PEM
191 #define TEST_SRV_KEY_EC         TEST_SRV_KEY_EC_PEM
192 #define TEST_SRV_PWD_EC         ""
193 #define TEST_SRV_CRT_EC         TEST_SRV_CRT_EC_PEM
194 
195 /* PEM encoded test client certificates and keys */
196 
197 #define TEST_CLI_KEY_RSA  TEST_CLI_KEY_RSA_PEM
198 #define TEST_CLI_PWD_RSA  ""
199 #define TEST_CLI_CRT_RSA  TEST_CLI_CRT_RSA_PEM
200 #define TEST_CLI_KEY_EC   TEST_CLI_KEY_EC_PEM
201 #define TEST_CLI_PWD_EC   ""
202 #define TEST_CLI_CRT_EC   TEST_CLI_CRT_EC_PEM
203 
204 #else /* MBEDTLS_PEM_PARSE_C */
205 
206 /* DER encoded test CA certificates and keys */
207 
208 #define TEST_CA_KEY_RSA        TEST_CA_KEY_RSA_DER
209 #define TEST_CA_PWD_RSA        ""
210 #define TEST_CA_CRT_RSA_SHA256 TEST_CA_CRT_RSA_SHA256_DER
211 #define TEST_CA_CRT_RSA_SHA1   TEST_CA_CRT_RSA_SHA1_DER
212 #define TEST_CA_KEY_EC         TEST_CA_KEY_EC_DER
213 #define TEST_CA_PWD_EC         ""
214 #define TEST_CA_CRT_EC         TEST_CA_CRT_EC_DER
215 
216 /* DER encoded test server certificates and keys */
217 
218 #define TEST_SRV_KEY_RSA        TEST_SRV_KEY_RSA_DER
219 #define TEST_SRV_PWD_RSA        ""
220 #define TEST_SRV_CRT_RSA_SHA256 TEST_SRV_CRT_RSA_SHA256_DER
221 #define TEST_SRV_CRT_RSA_SHA1   TEST_SRV_CRT_RSA_SHA1_DER
222 #define TEST_SRV_KEY_EC         TEST_SRV_KEY_EC_DER
223 #define TEST_SRV_PWD_EC         ""
224 #define TEST_SRV_CRT_EC         TEST_SRV_CRT_EC_DER
225 
226 /* DER encoded test client certificates and keys */
227 
228 #define TEST_CLI_KEY_RSA  TEST_CLI_KEY_RSA_DER
229 #define TEST_CLI_PWD_RSA  ""
230 #define TEST_CLI_CRT_RSA  TEST_CLI_CRT_RSA_DER
231 #define TEST_CLI_KEY_EC   TEST_CLI_KEY_EC_DER
232 #define TEST_CLI_PWD_EC   ""
233 #define TEST_CLI_CRT_EC   TEST_CLI_CRT_EC_DER
234 
235 #endif /* MBEDTLS_PEM_PARSE_C */
236 
237 const char mbedtls_test_ca_key_rsa[]         = TEST_CA_KEY_RSA;
238 const char mbedtls_test_ca_pwd_rsa[]         = TEST_CA_PWD_RSA;
239 const char mbedtls_test_ca_crt_rsa_sha256[]  = TEST_CA_CRT_RSA_SHA256;
240 const char mbedtls_test_ca_crt_rsa_sha1[]    = TEST_CA_CRT_RSA_SHA1;
241 const char mbedtls_test_ca_key_ec[]          = TEST_CA_KEY_EC;
242 const char mbedtls_test_ca_pwd_ec[]          = TEST_CA_PWD_EC;
243 const char mbedtls_test_ca_crt_ec[]          = TEST_CA_CRT_EC;
244 
245 const char mbedtls_test_srv_key_rsa[]        = TEST_SRV_KEY_RSA;
246 const char mbedtls_test_srv_pwd_rsa[]        = TEST_SRV_PWD_RSA;
247 const char mbedtls_test_srv_crt_rsa_sha256[] = TEST_SRV_CRT_RSA_SHA256;
248 const char mbedtls_test_srv_crt_rsa_sha1[]   = TEST_SRV_CRT_RSA_SHA1;
249 const char mbedtls_test_srv_key_ec[]         = TEST_SRV_KEY_EC;
250 const char mbedtls_test_srv_pwd_ec[]         = TEST_SRV_PWD_EC;
251 const char mbedtls_test_srv_crt_ec[]         = TEST_SRV_CRT_EC;
252 
253 const char mbedtls_test_cli_key_rsa[]        = TEST_CLI_KEY_RSA;
254 const char mbedtls_test_cli_pwd_rsa[]        = TEST_CLI_PWD_RSA;
255 const char mbedtls_test_cli_crt_rsa[]        = TEST_CLI_CRT_RSA;
256 const char mbedtls_test_cli_key_ec[]         = TEST_CLI_KEY_EC;
257 const char mbedtls_test_cli_pwd_ec[]         = TEST_CLI_PWD_EC;
258 const char mbedtls_test_cli_crt_ec[]         = TEST_CLI_CRT_EC;
259 
260 const size_t mbedtls_test_ca_key_rsa_len =
261     sizeof(mbedtls_test_ca_key_rsa);
262 const size_t mbedtls_test_ca_pwd_rsa_len =
263     sizeof(mbedtls_test_ca_pwd_rsa) - 1;
264 const size_t mbedtls_test_ca_crt_rsa_sha256_len =
265     sizeof(mbedtls_test_ca_crt_rsa_sha256);
266 const size_t mbedtls_test_ca_crt_rsa_sha1_len =
267     sizeof(mbedtls_test_ca_crt_rsa_sha1);
268 const size_t mbedtls_test_ca_key_ec_len =
269     sizeof(mbedtls_test_ca_key_ec);
270 const size_t mbedtls_test_ca_pwd_ec_len =
271     sizeof(mbedtls_test_ca_pwd_ec) - 1;
272 const size_t mbedtls_test_ca_crt_ec_len =
273     sizeof(mbedtls_test_ca_crt_ec);
274 
275 const size_t mbedtls_test_srv_key_rsa_len =
276     sizeof(mbedtls_test_srv_key_rsa);
277 const size_t mbedtls_test_srv_pwd_rsa_len =
278     sizeof(mbedtls_test_srv_pwd_rsa) -1;
279 const size_t mbedtls_test_srv_crt_rsa_sha256_len =
280     sizeof(mbedtls_test_srv_crt_rsa_sha256);
281 const size_t mbedtls_test_srv_crt_rsa_sha1_len =
282     sizeof(mbedtls_test_srv_crt_rsa_sha1);
283 const size_t mbedtls_test_srv_key_ec_len =
284     sizeof(mbedtls_test_srv_key_ec);
285 const size_t mbedtls_test_srv_pwd_ec_len =
286     sizeof(mbedtls_test_srv_pwd_ec) - 1;
287 const size_t mbedtls_test_srv_crt_ec_len =
288     sizeof(mbedtls_test_srv_crt_ec);
289 
290 const size_t mbedtls_test_cli_key_rsa_len =
291     sizeof(mbedtls_test_cli_key_rsa);
292 const size_t mbedtls_test_cli_pwd_rsa_len =
293     sizeof(mbedtls_test_cli_pwd_rsa) - 1;
294 const size_t mbedtls_test_cli_crt_rsa_len =
295     sizeof(mbedtls_test_cli_crt_rsa);
296 const size_t mbedtls_test_cli_key_ec_len =
297     sizeof(mbedtls_test_cli_key_ec);
298 const size_t mbedtls_test_cli_pwd_ec_len =
299     sizeof(mbedtls_test_cli_pwd_ec) - 1;
300 const size_t mbedtls_test_cli_crt_ec_len =
301     sizeof(mbedtls_test_cli_crt_ec);
302 
303 /*
304  * Dispatch between SHA-1 and SHA-256
305  */
306 
307 #if defined(PSA_WANT_ALG_SHA_256)
308 #define TEST_CA_CRT_RSA  TEST_CA_CRT_RSA_SHA256
309 #define TEST_SRV_CRT_RSA TEST_SRV_CRT_RSA_SHA256
310 #else
311 #define TEST_CA_CRT_RSA  TEST_CA_CRT_RSA_SHA1
312 #define TEST_SRV_CRT_RSA TEST_SRV_CRT_RSA_SHA1
313 #endif /* PSA_WANT_ALG_SHA_256 */
314 
315 const char mbedtls_test_ca_crt_rsa[]  = TEST_CA_CRT_RSA;
316 const char mbedtls_test_srv_crt_rsa[] = TEST_SRV_CRT_RSA;
317 
318 const size_t mbedtls_test_ca_crt_rsa_len =
319     sizeof(mbedtls_test_ca_crt_rsa);
320 const size_t mbedtls_test_srv_crt_rsa_len =
321     sizeof(mbedtls_test_srv_crt_rsa);
322 
323 /*
324  * Dispatch between RSA and EC
325  */
326 
327 #if defined(MBEDTLS_RSA_C)
328 
329 #define TEST_CA_KEY TEST_CA_KEY_RSA
330 #define TEST_CA_PWD TEST_CA_PWD_RSA
331 #define TEST_CA_CRT TEST_CA_CRT_RSA
332 
333 #define TEST_SRV_KEY TEST_SRV_KEY_RSA
334 #define TEST_SRV_PWD TEST_SRV_PWD_RSA
335 #define TEST_SRV_CRT TEST_SRV_CRT_RSA
336 
337 #define TEST_CLI_KEY TEST_CLI_KEY_RSA
338 #define TEST_CLI_PWD TEST_CLI_PWD_RSA
339 #define TEST_CLI_CRT TEST_CLI_CRT_RSA
340 
341 #else /* no RSA, so assume ECDSA */
342 
343 #define TEST_CA_KEY TEST_CA_KEY_EC
344 #define TEST_CA_PWD TEST_CA_PWD_EC
345 #define TEST_CA_CRT TEST_CA_CRT_EC
346 
347 #define TEST_SRV_KEY TEST_SRV_KEY_EC
348 #define TEST_SRV_PWD TEST_SRV_PWD_EC
349 #define TEST_SRV_CRT TEST_SRV_CRT_EC
350 
351 #define TEST_CLI_KEY TEST_CLI_KEY_EC
352 #define TEST_CLI_PWD TEST_CLI_PWD_EC
353 #define TEST_CLI_CRT TEST_CLI_CRT_EC
354 #endif /* MBEDTLS_RSA_C */
355 
356 /* API stability forces us to declare
357  *   mbedtls_test_{ca|srv|cli}_{key|pwd|crt}
358  * as pointers. */
359 static const char test_ca_key[] = TEST_CA_KEY;
360 static const char test_ca_pwd[] = TEST_CA_PWD;
361 static const char test_ca_crt[] = TEST_CA_CRT;
362 
363 static const char test_srv_key[] = TEST_SRV_KEY;
364 static const char test_srv_pwd[] = TEST_SRV_PWD;
365 static const char test_srv_crt[] = TEST_SRV_CRT;
366 
367 static const char test_cli_key[] = TEST_CLI_KEY;
368 static const char test_cli_pwd[] = TEST_CLI_PWD;
369 static const char test_cli_crt[] = TEST_CLI_CRT;
370 
371 const char *mbedtls_test_ca_key = test_ca_key;
372 const char *mbedtls_test_ca_pwd = test_ca_pwd;
373 const char *mbedtls_test_ca_crt = test_ca_crt;
374 
375 const char *mbedtls_test_srv_key = test_srv_key;
376 const char *mbedtls_test_srv_pwd = test_srv_pwd;
377 const char *mbedtls_test_srv_crt = test_srv_crt;
378 
379 const char *mbedtls_test_cli_key = test_cli_key;
380 const char *mbedtls_test_cli_pwd = test_cli_pwd;
381 const char *mbedtls_test_cli_crt = test_cli_crt;
382 
383 const size_t mbedtls_test_ca_key_len =
384     sizeof(test_ca_key);
385 const size_t mbedtls_test_ca_pwd_len =
386     sizeof(test_ca_pwd) - 1;
387 const size_t mbedtls_test_ca_crt_len =
388     sizeof(test_ca_crt);
389 
390 const size_t mbedtls_test_srv_key_len =
391     sizeof(test_srv_key);
392 const size_t mbedtls_test_srv_pwd_len =
393     sizeof(test_srv_pwd) - 1;
394 const size_t mbedtls_test_srv_crt_len =
395     sizeof(test_srv_crt);
396 
397 const size_t mbedtls_test_cli_key_len =
398     sizeof(test_cli_key);
399 const size_t mbedtls_test_cli_pwd_len =
400     sizeof(test_cli_pwd) - 1;
401 const size_t mbedtls_test_cli_crt_len =
402     sizeof(test_cli_crt);
403 
404 /*
405  *
406  * Lists of certificates
407  *
408  */
409 
410 /* List of CAs in PEM or DER, depending on config */
411 const char *mbedtls_test_cas[] = {
412 #if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_1)
413     mbedtls_test_ca_crt_rsa_sha1,
414 #endif
415 #if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_256)
416     mbedtls_test_ca_crt_rsa_sha256,
417 #endif
418 #if defined(PSA_HAVE_ALG_SOME_ECDSA)
419     mbedtls_test_ca_crt_ec,
420 #endif
421     NULL
422 };
423 const size_t mbedtls_test_cas_len[] = {
424 #if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_1)
425     sizeof(mbedtls_test_ca_crt_rsa_sha1),
426 #endif
427 #if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_256)
428     sizeof(mbedtls_test_ca_crt_rsa_sha256),
429 #endif
430 #if defined(PSA_HAVE_ALG_SOME_ECDSA)
431     sizeof(mbedtls_test_ca_crt_ec),
432 #endif
433     0
434 };
435 
436 /* List of all available CA certificates in DER format */
437 const unsigned char *mbedtls_test_cas_der[] = {
438 #if defined(MBEDTLS_RSA_C)
439 #if defined(PSA_WANT_ALG_SHA_256)
440     mbedtls_test_ca_crt_rsa_sha256_der,
441 #endif /* PSA_WANT_ALG_SHA_256 */
442 #if defined(PSA_WANT_ALG_SHA_1)
443     mbedtls_test_ca_crt_rsa_sha1_der,
444 #endif /* PSA_WANT_ALG_SHA_1 */
445 #endif /* MBEDTLS_RSA_C */
446 #if defined(PSA_HAVE_ALG_SOME_ECDSA)
447     mbedtls_test_ca_crt_ec_der,
448 #endif /* PSA_HAVE_ALG_SOME_ECDSA */
449     NULL
450 };
451 
452 const size_t mbedtls_test_cas_der_len[] = {
453 #if defined(MBEDTLS_RSA_C)
454 #if defined(PSA_WANT_ALG_SHA_256)
455     sizeof(mbedtls_test_ca_crt_rsa_sha256_der),
456 #endif /* PSA_WANT_ALG_SHA_256 */
457 #if defined(PSA_WANT_ALG_SHA_1)
458     sizeof(mbedtls_test_ca_crt_rsa_sha1_der),
459 #endif /* PSA_WANT_ALG_SHA_1 */
460 #endif /* MBEDTLS_RSA_C */
461 #if defined(PSA_HAVE_ALG_SOME_ECDSA)
462     sizeof(mbedtls_test_ca_crt_ec_der),
463 #endif /* PSA_HAVE_ALG_SOME_ECDSA */
464     0
465 };
466 
467 /* Concatenation of all available CA certificates in PEM format */
468 #if defined(MBEDTLS_PEM_PARSE_C)
469 const char mbedtls_test_cas_pem[] =
470 #if defined(MBEDTLS_RSA_C)
471 #if defined(PSA_WANT_ALG_SHA_256)
472     TEST_CA_CRT_RSA_SHA256_PEM
473 #endif /* PSA_WANT_ALG_SHA_256 */
474 #if defined(PSA_WANT_ALG_SHA_1)
475     TEST_CA_CRT_RSA_SHA1_PEM
476 #endif /* PSA_WANT_ALG_SHA_1 */
477 #endif /* MBEDTLS_RSA_C */
478 #if defined(PSA_HAVE_ALG_SOME_ECDSA)
479     TEST_CA_CRT_EC_PEM
480 #endif /* PSA_HAVE_ALG_SOME_ECDSA */
481     "";
482 const size_t mbedtls_test_cas_pem_len = sizeof(mbedtls_test_cas_pem);
483 #endif /* MBEDTLS_PEM_PARSE_C */
484