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