blob: d1af5b2aa43332d2582954eba08797561c628ac7 [file] [log] [blame]
Paul Bakker5121ce52009-01-03 21:22:43 +00001/*
2 * X.509 test certificates
3 *
Bence Szépkúti1e148272020-08-07 13:07:28 +02004 * Copyright The Mbed TLS Contributors
Dave Rodgman16799db2023-11-02 19:47:20 +00005 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
Paul Bakker5121ce52009-01-03 21:22:43 +00006 */
7
Gilles Peskinedb09ef62020-06-03 01:43:33 +02008#include "common.h"
Paul Bakker5121ce52009-01-03 21:22:43 +00009
Mateusz Starzyk1aec6462021-02-08 15:34:42 +010010#include <test/certs.h>
Paul Bakker5121ce52009-01-03 21:22:43 +000011
Andrzej Kurek25f27152022-08-17 16:09:31 -040012#include "mbedtls/build_info.h"
13
Valerio Setti16f02e02023-02-13 11:09:40 +010014#include "mbedtls/pk.h"
Valerio Settid928aeb2023-02-08 14:46:15 +010015
Ronald Cron99226e92025-02-14 15:43:22 +010016#include "test/test_certs.h"
Hanno Becker960e5882019-03-12 16:38:17 +000017
18/*
19 *
20 * Test certificates and keys as C variables
21 *
22 */
23
24/*
25 * CA
26 */
27
28const char mbedtls_test_ca_crt_ec_pem[] = TEST_CA_CRT_EC_PEM;
29const char mbedtls_test_ca_key_ec_pem[] = TEST_CA_KEY_EC_PEM;
30const char mbedtls_test_ca_pwd_ec_pem[] = TEST_CA_PWD_EC_PEM;
31const char mbedtls_test_ca_key_rsa_pem[] = TEST_CA_KEY_RSA_PEM;
32const char mbedtls_test_ca_pwd_rsa_pem[] = TEST_CA_PWD_RSA_PEM;
33const char mbedtls_test_ca_crt_rsa_sha1_pem[] = TEST_CA_CRT_RSA_SHA1_PEM;
34const char mbedtls_test_ca_crt_rsa_sha256_pem[] = TEST_CA_CRT_RSA_SHA256_PEM;
35
36const unsigned char mbedtls_test_ca_crt_ec_der[] = TEST_CA_CRT_EC_DER;
37const unsigned char mbedtls_test_ca_key_ec_der[] = TEST_CA_KEY_EC_DER;
38const unsigned char mbedtls_test_ca_key_rsa_der[] = TEST_CA_KEY_RSA_DER;
39const unsigned char mbedtls_test_ca_crt_rsa_sha1_der[] =
40 TEST_CA_CRT_RSA_SHA1_DER;
41const unsigned char mbedtls_test_ca_crt_rsa_sha256_der[] =
42 TEST_CA_CRT_RSA_SHA256_DER;
43
44const size_t mbedtls_test_ca_crt_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010045 sizeof(mbedtls_test_ca_crt_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000046const size_t mbedtls_test_ca_key_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010047 sizeof(mbedtls_test_ca_key_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000048const size_t mbedtls_test_ca_pwd_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010049 sizeof(mbedtls_test_ca_pwd_ec_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +000050const size_t mbedtls_test_ca_key_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010051 sizeof(mbedtls_test_ca_key_rsa_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000052const size_t mbedtls_test_ca_pwd_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010053 sizeof(mbedtls_test_ca_pwd_rsa_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +000054const size_t mbedtls_test_ca_crt_rsa_sha1_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010055 sizeof(mbedtls_test_ca_crt_rsa_sha1_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000056const size_t mbedtls_test_ca_crt_rsa_sha256_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010057 sizeof(mbedtls_test_ca_crt_rsa_sha256_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000058
59const size_t mbedtls_test_ca_crt_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010060 sizeof(mbedtls_test_ca_crt_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +000061const size_t mbedtls_test_ca_key_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010062 sizeof(mbedtls_test_ca_key_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +000063const size_t mbedtls_test_ca_pwd_ec_der_len = 0;
64const size_t mbedtls_test_ca_key_rsa_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010065 sizeof(mbedtls_test_ca_key_rsa_der);
Hanno Becker960e5882019-03-12 16:38:17 +000066const size_t mbedtls_test_ca_pwd_rsa_der_len = 0;
67const size_t mbedtls_test_ca_crt_rsa_sha1_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010068 sizeof(mbedtls_test_ca_crt_rsa_sha1_der);
Hanno Becker960e5882019-03-12 16:38:17 +000069const size_t mbedtls_test_ca_crt_rsa_sha256_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010070 sizeof(mbedtls_test_ca_crt_rsa_sha256_der);
Hanno Becker960e5882019-03-12 16:38:17 +000071
72/*
73 * Server
74 */
75
76const char mbedtls_test_srv_crt_ec_pem[] = TEST_SRV_CRT_EC_PEM;
77const char mbedtls_test_srv_key_ec_pem[] = TEST_SRV_KEY_EC_PEM;
78const char mbedtls_test_srv_pwd_ec_pem[] = "";
79const char mbedtls_test_srv_key_rsa_pem[] = TEST_SRV_KEY_RSA_PEM;
80const char mbedtls_test_srv_pwd_rsa_pem[] = "";
81const char mbedtls_test_srv_crt_rsa_sha1_pem[] = TEST_SRV_CRT_RSA_SHA1_PEM;
82const char mbedtls_test_srv_crt_rsa_sha256_pem[] = TEST_SRV_CRT_RSA_SHA256_PEM;
83
84const unsigned char mbedtls_test_srv_crt_ec_der[] = TEST_SRV_CRT_EC_DER;
85const unsigned char mbedtls_test_srv_key_ec_der[] = TEST_SRV_KEY_EC_DER;
86const unsigned char mbedtls_test_srv_key_rsa_der[] = TEST_SRV_KEY_RSA_DER;
87const unsigned char mbedtls_test_srv_crt_rsa_sha1_der[] =
88 TEST_SRV_CRT_RSA_SHA1_DER;
89const unsigned char mbedtls_test_srv_crt_rsa_sha256_der[] =
90 TEST_SRV_CRT_RSA_SHA256_DER;
91
92const size_t mbedtls_test_srv_crt_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010093 sizeof(mbedtls_test_srv_crt_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000094const size_t mbedtls_test_srv_key_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010095 sizeof(mbedtls_test_srv_key_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000096const size_t mbedtls_test_srv_pwd_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010097 sizeof(mbedtls_test_srv_pwd_ec_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +000098const size_t mbedtls_test_srv_key_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010099 sizeof(mbedtls_test_srv_key_rsa_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000100const size_t mbedtls_test_srv_pwd_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100101 sizeof(mbedtls_test_srv_pwd_rsa_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000102const size_t mbedtls_test_srv_crt_rsa_sha1_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100103 sizeof(mbedtls_test_srv_crt_rsa_sha1_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000104const size_t mbedtls_test_srv_crt_rsa_sha256_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100105 sizeof(mbedtls_test_srv_crt_rsa_sha256_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000106
107const size_t mbedtls_test_srv_crt_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100108 sizeof(mbedtls_test_srv_crt_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000109const size_t mbedtls_test_srv_key_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100110 sizeof(mbedtls_test_srv_key_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000111const size_t mbedtls_test_srv_pwd_ec_der_len = 0;
112const size_t mbedtls_test_srv_key_rsa_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100113 sizeof(mbedtls_test_srv_key_rsa_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000114const size_t mbedtls_test_srv_pwd_rsa_der_len = 0;
115const size_t mbedtls_test_srv_crt_rsa_sha1_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100116 sizeof(mbedtls_test_srv_crt_rsa_sha1_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000117const size_t mbedtls_test_srv_crt_rsa_sha256_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100118 sizeof(mbedtls_test_srv_crt_rsa_sha256_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000119
120/*
121 * Client
122 */
123
124const char mbedtls_test_cli_crt_ec_pem[] = TEST_CLI_CRT_EC_PEM;
125const char mbedtls_test_cli_key_ec_pem[] = TEST_CLI_KEY_EC_PEM;
126const char mbedtls_test_cli_pwd_ec_pem[] = "";
127const char mbedtls_test_cli_key_rsa_pem[] = TEST_CLI_KEY_RSA_PEM;
128const char mbedtls_test_cli_pwd_rsa_pem[] = "";
129const char mbedtls_test_cli_crt_rsa_pem[] = TEST_CLI_CRT_RSA_PEM;
130
131const unsigned char mbedtls_test_cli_crt_ec_der[] = TEST_CLI_CRT_EC_DER;
132const unsigned char mbedtls_test_cli_key_ec_der[] = TEST_CLI_KEY_EC_DER;
133const unsigned char mbedtls_test_cli_key_rsa_der[] = TEST_CLI_KEY_RSA_DER;
134const unsigned char mbedtls_test_cli_crt_rsa_der[] = TEST_CLI_CRT_RSA_DER;
135
136const size_t mbedtls_test_cli_crt_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100137 sizeof(mbedtls_test_cli_crt_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000138const size_t mbedtls_test_cli_key_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100139 sizeof(mbedtls_test_cli_key_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000140const size_t mbedtls_test_cli_pwd_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100141 sizeof(mbedtls_test_cli_pwd_ec_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000142const size_t mbedtls_test_cli_key_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100143 sizeof(mbedtls_test_cli_key_rsa_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000144const size_t mbedtls_test_cli_pwd_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100145 sizeof(mbedtls_test_cli_pwd_rsa_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000146const size_t mbedtls_test_cli_crt_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100147 sizeof(mbedtls_test_cli_crt_rsa_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000148
149const size_t mbedtls_test_cli_crt_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100150 sizeof(mbedtls_test_cli_crt_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000151const size_t mbedtls_test_cli_key_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100152 sizeof(mbedtls_test_cli_key_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000153const size_t mbedtls_test_cli_key_rsa_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100154 sizeof(mbedtls_test_cli_key_rsa_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000155const size_t mbedtls_test_cli_crt_rsa_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100156 sizeof(mbedtls_test_cli_crt_rsa_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000157
158/*
159 *
160 * Definitions of test CRTs without specification of all parameters, choosing
161 * them automatically according to the config. For example, mbedtls_test_ca_crt
162 * is one of mbedtls_test_ca_crt_{rsa|ec}_{sha1|sha256}_{pem|der}.
163 *
164 */
165
166/*
167 * Dispatch between PEM and DER according to config
168 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000169
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200170#if defined(MBEDTLS_PEM_PARSE_C)
Manuel Pégourié-Gonnard641de712013-09-25 13:23:33 +0200171
Hanno Becker960e5882019-03-12 16:38:17 +0000172/* PEM encoded test CA certificates and keys */
173
174#define TEST_CA_KEY_RSA TEST_CA_KEY_RSA_PEM
175#define TEST_CA_PWD_RSA TEST_CA_PWD_RSA_PEM
176#define TEST_CA_CRT_RSA_SHA256 TEST_CA_CRT_RSA_SHA256_PEM
177#define TEST_CA_CRT_RSA_SHA1 TEST_CA_CRT_RSA_SHA1_PEM
178#define TEST_CA_KEY_EC TEST_CA_KEY_EC_PEM
179#define TEST_CA_PWD_EC TEST_CA_PWD_EC_PEM
180#define TEST_CA_CRT_EC TEST_CA_CRT_EC_PEM
181
182/* PEM encoded test server certificates and keys */
183
184#define TEST_SRV_KEY_RSA TEST_SRV_KEY_RSA_PEM
185#define TEST_SRV_PWD_RSA ""
186#define TEST_SRV_CRT_RSA_SHA256 TEST_SRV_CRT_RSA_SHA256_PEM
187#define TEST_SRV_CRT_RSA_SHA1 TEST_SRV_CRT_RSA_SHA1_PEM
188#define TEST_SRV_KEY_EC TEST_SRV_KEY_EC_PEM
189#define TEST_SRV_PWD_EC ""
190#define TEST_SRV_CRT_EC TEST_SRV_CRT_EC_PEM
191
192/* PEM encoded test client certificates and keys */
193
194#define TEST_CLI_KEY_RSA TEST_CLI_KEY_RSA_PEM
195#define TEST_CLI_PWD_RSA ""
196#define TEST_CLI_CRT_RSA TEST_CLI_CRT_RSA_PEM
197#define TEST_CLI_KEY_EC TEST_CLI_KEY_EC_PEM
198#define TEST_CLI_PWD_EC ""
199#define TEST_CLI_CRT_EC TEST_CLI_CRT_EC_PEM
200
201#else /* MBEDTLS_PEM_PARSE_C */
202
203/* DER encoded test CA certificates and keys */
204
205#define TEST_CA_KEY_RSA TEST_CA_KEY_RSA_DER
206#define TEST_CA_PWD_RSA ""
207#define TEST_CA_CRT_RSA_SHA256 TEST_CA_CRT_RSA_SHA256_DER
208#define TEST_CA_CRT_RSA_SHA1 TEST_CA_CRT_RSA_SHA1_DER
209#define TEST_CA_KEY_EC TEST_CA_KEY_EC_DER
210#define TEST_CA_PWD_EC ""
211#define TEST_CA_CRT_EC TEST_CA_CRT_EC_DER
212
213/* DER encoded test server certificates and keys */
214
215#define TEST_SRV_KEY_RSA TEST_SRV_KEY_RSA_DER
216#define TEST_SRV_PWD_RSA ""
217#define TEST_SRV_CRT_RSA_SHA256 TEST_SRV_CRT_RSA_SHA256_DER
218#define TEST_SRV_CRT_RSA_SHA1 TEST_SRV_CRT_RSA_SHA1_DER
219#define TEST_SRV_KEY_EC TEST_SRV_KEY_EC_DER
220#define TEST_SRV_PWD_EC ""
221#define TEST_SRV_CRT_EC TEST_SRV_CRT_EC_DER
222
223/* DER encoded test client certificates and keys */
224
225#define TEST_CLI_KEY_RSA TEST_CLI_KEY_RSA_DER
226#define TEST_CLI_PWD_RSA ""
227#define TEST_CLI_CRT_RSA TEST_CLI_CRT_RSA_DER
228#define TEST_CLI_KEY_EC TEST_CLI_KEY_EC_DER
229#define TEST_CLI_PWD_EC ""
230#define TEST_CLI_CRT_EC TEST_CLI_CRT_EC_DER
231
232#endif /* MBEDTLS_PEM_PARSE_C */
233
234const char mbedtls_test_ca_key_rsa[] = TEST_CA_KEY_RSA;
235const char mbedtls_test_ca_pwd_rsa[] = TEST_CA_PWD_RSA;
236const char mbedtls_test_ca_crt_rsa_sha256[] = TEST_CA_CRT_RSA_SHA256;
237const char mbedtls_test_ca_crt_rsa_sha1[] = TEST_CA_CRT_RSA_SHA1;
238const char mbedtls_test_ca_key_ec[] = TEST_CA_KEY_EC;
239const char mbedtls_test_ca_pwd_ec[] = TEST_CA_PWD_EC;
240const char mbedtls_test_ca_crt_ec[] = TEST_CA_CRT_EC;
241
242const char mbedtls_test_srv_key_rsa[] = TEST_SRV_KEY_RSA;
243const char mbedtls_test_srv_pwd_rsa[] = TEST_SRV_PWD_RSA;
244const char mbedtls_test_srv_crt_rsa_sha256[] = TEST_SRV_CRT_RSA_SHA256;
245const char mbedtls_test_srv_crt_rsa_sha1[] = TEST_SRV_CRT_RSA_SHA1;
246const char mbedtls_test_srv_key_ec[] = TEST_SRV_KEY_EC;
247const char mbedtls_test_srv_pwd_ec[] = TEST_SRV_PWD_EC;
248const char mbedtls_test_srv_crt_ec[] = TEST_SRV_CRT_EC;
249
250const char mbedtls_test_cli_key_rsa[] = TEST_CLI_KEY_RSA;
251const char mbedtls_test_cli_pwd_rsa[] = TEST_CLI_PWD_RSA;
252const char mbedtls_test_cli_crt_rsa[] = TEST_CLI_CRT_RSA;
253const char mbedtls_test_cli_key_ec[] = TEST_CLI_KEY_EC;
254const char mbedtls_test_cli_pwd_ec[] = TEST_CLI_PWD_EC;
255const char mbedtls_test_cli_crt_ec[] = TEST_CLI_CRT_EC;
256
257const size_t mbedtls_test_ca_key_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100258 sizeof(mbedtls_test_ca_key_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000259const size_t mbedtls_test_ca_pwd_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100260 sizeof(mbedtls_test_ca_pwd_rsa) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000261const size_t mbedtls_test_ca_crt_rsa_sha256_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100262 sizeof(mbedtls_test_ca_crt_rsa_sha256);
Hanno Becker960e5882019-03-12 16:38:17 +0000263const size_t mbedtls_test_ca_crt_rsa_sha1_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100264 sizeof(mbedtls_test_ca_crt_rsa_sha1);
Hanno Becker960e5882019-03-12 16:38:17 +0000265const size_t mbedtls_test_ca_key_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100266 sizeof(mbedtls_test_ca_key_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000267const size_t mbedtls_test_ca_pwd_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100268 sizeof(mbedtls_test_ca_pwd_ec) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000269const size_t mbedtls_test_ca_crt_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100270 sizeof(mbedtls_test_ca_crt_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000271
272const size_t mbedtls_test_srv_key_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100273 sizeof(mbedtls_test_srv_key_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000274const size_t mbedtls_test_srv_pwd_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100275 sizeof(mbedtls_test_srv_pwd_rsa) -1;
Hanno Becker960e5882019-03-12 16:38:17 +0000276const size_t mbedtls_test_srv_crt_rsa_sha256_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100277 sizeof(mbedtls_test_srv_crt_rsa_sha256);
Hanno Becker960e5882019-03-12 16:38:17 +0000278const size_t mbedtls_test_srv_crt_rsa_sha1_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100279 sizeof(mbedtls_test_srv_crt_rsa_sha1);
Hanno Becker960e5882019-03-12 16:38:17 +0000280const size_t mbedtls_test_srv_key_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100281 sizeof(mbedtls_test_srv_key_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000282const size_t mbedtls_test_srv_pwd_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100283 sizeof(mbedtls_test_srv_pwd_ec) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000284const size_t mbedtls_test_srv_crt_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100285 sizeof(mbedtls_test_srv_crt_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000286
287const size_t mbedtls_test_cli_key_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100288 sizeof(mbedtls_test_cli_key_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000289const size_t mbedtls_test_cli_pwd_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100290 sizeof(mbedtls_test_cli_pwd_rsa) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000291const size_t mbedtls_test_cli_crt_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100292 sizeof(mbedtls_test_cli_crt_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000293const size_t mbedtls_test_cli_key_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100294 sizeof(mbedtls_test_cli_key_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000295const size_t mbedtls_test_cli_pwd_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100296 sizeof(mbedtls_test_cli_pwd_ec) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000297const size_t mbedtls_test_cli_crt_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100298 sizeof(mbedtls_test_cli_crt_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000299
300/*
301 * Dispatch between SHA-1 and SHA-256
302 */
303
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100304#if defined(PSA_WANT_ALG_SHA_256)
Hanno Becker960e5882019-03-12 16:38:17 +0000305#define TEST_CA_CRT_RSA TEST_CA_CRT_RSA_SHA256
306#define TEST_SRV_CRT_RSA TEST_SRV_CRT_RSA_SHA256
307#else
308#define TEST_CA_CRT_RSA TEST_CA_CRT_RSA_SHA1
309#define TEST_SRV_CRT_RSA TEST_SRV_CRT_RSA_SHA1
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100310#endif /* PSA_WANT_ALG_SHA_256 */
Hanno Becker960e5882019-03-12 16:38:17 +0000311
312const char mbedtls_test_ca_crt_rsa[] = TEST_CA_CRT_RSA;
313const char mbedtls_test_srv_crt_rsa[] = TEST_SRV_CRT_RSA;
314
315const size_t mbedtls_test_ca_crt_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100316 sizeof(mbedtls_test_ca_crt_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000317const size_t mbedtls_test_srv_crt_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100318 sizeof(mbedtls_test_srv_crt_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000319
320/*
321 * Dispatch between RSA and EC
322 */
323
324#if defined(MBEDTLS_RSA_C)
325
326#define TEST_CA_KEY TEST_CA_KEY_RSA
327#define TEST_CA_PWD TEST_CA_PWD_RSA
328#define TEST_CA_CRT TEST_CA_CRT_RSA
329
330#define TEST_SRV_KEY TEST_SRV_KEY_RSA
331#define TEST_SRV_PWD TEST_SRV_PWD_RSA
332#define TEST_SRV_CRT TEST_SRV_CRT_RSA
333
334#define TEST_CLI_KEY TEST_CLI_KEY_RSA
335#define TEST_CLI_PWD TEST_CLI_PWD_RSA
336#define TEST_CLI_CRT TEST_CLI_CRT_RSA
337
338#else /* no RSA, so assume ECDSA */
339
340#define TEST_CA_KEY TEST_CA_KEY_EC
341#define TEST_CA_PWD TEST_CA_PWD_EC
342#define TEST_CA_CRT TEST_CA_CRT_EC
343
344#define TEST_SRV_KEY TEST_SRV_KEY_EC
345#define TEST_SRV_PWD TEST_SRV_PWD_EC
346#define TEST_SRV_CRT TEST_SRV_CRT_EC
347
348#define TEST_CLI_KEY TEST_CLI_KEY_EC
349#define TEST_CLI_PWD TEST_CLI_PWD_EC
350#define TEST_CLI_CRT TEST_CLI_CRT_EC
Hanno Becker960e5882019-03-12 16:38:17 +0000351#endif /* MBEDTLS_RSA_C */
352
353/* API stability forces us to declare
354 * mbedtls_test_{ca|srv|cli}_{key|pwd|crt}
355 * as pointers. */
356static const char test_ca_key[] = TEST_CA_KEY;
357static const char test_ca_pwd[] = TEST_CA_PWD;
358static const char test_ca_crt[] = TEST_CA_CRT;
359
360static const char test_srv_key[] = TEST_SRV_KEY;
361static const char test_srv_pwd[] = TEST_SRV_PWD;
362static const char test_srv_crt[] = TEST_SRV_CRT;
363
364static const char test_cli_key[] = TEST_CLI_KEY;
365static const char test_cli_pwd[] = TEST_CLI_PWD;
366static const char test_cli_crt[] = TEST_CLI_CRT;
367
368const char *mbedtls_test_ca_key = test_ca_key;
369const char *mbedtls_test_ca_pwd = test_ca_pwd;
370const char *mbedtls_test_ca_crt = test_ca_crt;
371
372const char *mbedtls_test_srv_key = test_srv_key;
373const char *mbedtls_test_srv_pwd = test_srv_pwd;
374const char *mbedtls_test_srv_crt = test_srv_crt;
375
376const char *mbedtls_test_cli_key = test_cli_key;
377const char *mbedtls_test_cli_pwd = test_cli_pwd;
378const char *mbedtls_test_cli_crt = test_cli_crt;
379
380const size_t mbedtls_test_ca_key_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100381 sizeof(test_ca_key);
Hanno Becker960e5882019-03-12 16:38:17 +0000382const size_t mbedtls_test_ca_pwd_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100383 sizeof(test_ca_pwd) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000384const size_t mbedtls_test_ca_crt_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100385 sizeof(test_ca_crt);
Hanno Becker960e5882019-03-12 16:38:17 +0000386
387const size_t mbedtls_test_srv_key_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100388 sizeof(test_srv_key);
Hanno Becker960e5882019-03-12 16:38:17 +0000389const size_t mbedtls_test_srv_pwd_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100390 sizeof(test_srv_pwd) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000391const size_t mbedtls_test_srv_crt_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100392 sizeof(test_srv_crt);
Hanno Becker960e5882019-03-12 16:38:17 +0000393
394const size_t mbedtls_test_cli_key_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100395 sizeof(test_cli_key);
Hanno Becker960e5882019-03-12 16:38:17 +0000396const size_t mbedtls_test_cli_pwd_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100397 sizeof(test_cli_pwd) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000398const size_t mbedtls_test_cli_crt_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100399 sizeof(test_cli_crt);
Hanno Becker960e5882019-03-12 16:38:17 +0000400
401/*
402 *
403 * Lists of certificates
404 *
405 */
406
407/* List of CAs in PEM or DER, depending on config */
Gilles Peskine449bd832023-01-11 14:50:10 +0100408const char *mbedtls_test_cas[] = {
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100409#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_1)
Gilles Peskine750c3532017-05-05 18:56:30 +0200410 mbedtls_test_ca_crt_rsa_sha1,
411#endif
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100412#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_256)
Gilles Peskine750c3532017-05-05 18:56:30 +0200413 mbedtls_test_ca_crt_rsa_sha256,
Manuel Pégourié-Gonnard2f165062015-03-27 10:20:26 +0100414#endif
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100415#if defined(PSA_HAVE_ALG_SOME_ECDSA)
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200416 mbedtls_test_ca_crt_ec,
Manuel Pégourié-Gonnard2f165062015-03-27 10:20:26 +0100417#endif
418 NULL
419};
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200420const size_t mbedtls_test_cas_len[] = {
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100421#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_1)
Gilles Peskine449bd832023-01-11 14:50:10 +0100422 sizeof(mbedtls_test_ca_crt_rsa_sha1),
Gilles Peskine750c3532017-05-05 18:56:30 +0200423#endif
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100424#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_256)
Gilles Peskine449bd832023-01-11 14:50:10 +0100425 sizeof(mbedtls_test_ca_crt_rsa_sha256),
Manuel Pégourié-Gonnard2f165062015-03-27 10:20:26 +0100426#endif
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100427#if defined(PSA_HAVE_ALG_SOME_ECDSA)
Gilles Peskine449bd832023-01-11 14:50:10 +0100428 sizeof(mbedtls_test_ca_crt_ec),
Manuel Pégourié-Gonnard2f165062015-03-27 10:20:26 +0100429#endif
430 0
431};
432
Hanno Becker960e5882019-03-12 16:38:17 +0000433/* List of all available CA certificates in DER format */
Gilles Peskine449bd832023-01-11 14:50:10 +0100434const unsigned char *mbedtls_test_cas_der[] = {
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200435#if defined(MBEDTLS_RSA_C)
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100436#if defined(PSA_WANT_ALG_SHA_256)
Hanno Becker960e5882019-03-12 16:38:17 +0000437 mbedtls_test_ca_crt_rsa_sha256_der,
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100438#endif /* PSA_WANT_ALG_SHA_256 */
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100439#if defined(PSA_WANT_ALG_SHA_1)
Hanno Becker960e5882019-03-12 16:38:17 +0000440 mbedtls_test_ca_crt_rsa_sha1_der,
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100441#endif /* PSA_WANT_ALG_SHA_1 */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200442#endif /* MBEDTLS_RSA_C */
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100443#if defined(PSA_HAVE_ALG_SOME_ECDSA)
Hanno Becker960e5882019-03-12 16:38:17 +0000444 mbedtls_test_ca_crt_ec_der,
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100445#endif /* PSA_HAVE_ALG_SOME_ECDSA */
Hanno Becker960e5882019-03-12 16:38:17 +0000446 NULL
447};
448
449const size_t mbedtls_test_cas_der_len[] = {
450#if defined(MBEDTLS_RSA_C)
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100451#if defined(PSA_WANT_ALG_SHA_256)
Gilles Peskine449bd832023-01-11 14:50:10 +0100452 sizeof(mbedtls_test_ca_crt_rsa_sha256_der),
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100453#endif /* PSA_WANT_ALG_SHA_256 */
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100454#if defined(PSA_WANT_ALG_SHA_1)
Gilles Peskine449bd832023-01-11 14:50:10 +0100455 sizeof(mbedtls_test_ca_crt_rsa_sha1_der),
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100456#endif /* PSA_WANT_ALG_SHA_1 */
Hanno Becker960e5882019-03-12 16:38:17 +0000457#endif /* MBEDTLS_RSA_C */
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100458#if defined(PSA_HAVE_ALG_SOME_ECDSA)
Gilles Peskine449bd832023-01-11 14:50:10 +0100459 sizeof(mbedtls_test_ca_crt_ec_der),
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100460#endif /* PSA_HAVE_ALG_SOME_ECDSA */
Hanno Becker960e5882019-03-12 16:38:17 +0000461 0
462};
463
464/* Concatenation of all available CA certificates in PEM format */
465#if defined(MBEDTLS_PEM_PARSE_C)
466const char mbedtls_test_cas_pem[] =
467#if defined(MBEDTLS_RSA_C)
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100468#if defined(PSA_WANT_ALG_SHA_256)
Hanno Becker960e5882019-03-12 16:38:17 +0000469 TEST_CA_CRT_RSA_SHA256_PEM
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100470#endif /* PSA_WANT_ALG_SHA_256 */
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100471#if defined(PSA_WANT_ALG_SHA_1)
Hanno Becker960e5882019-03-12 16:38:17 +0000472 TEST_CA_CRT_RSA_SHA1_PEM
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100473#endif /* PSA_WANT_ALG_SHA_1 */
Hanno Becker960e5882019-03-12 16:38:17 +0000474#endif /* MBEDTLS_RSA_C */
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100475#if defined(PSA_HAVE_ALG_SOME_ECDSA)
Hanno Becker960e5882019-03-12 16:38:17 +0000476 TEST_CA_CRT_EC_PEM
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100477#endif /* PSA_HAVE_ALG_SOME_ECDSA */
Hanno Becker960e5882019-03-12 16:38:17 +0000478 "";
Gilles Peskine449bd832023-01-11 14:50:10 +0100479const size_t mbedtls_test_cas_pem_len = sizeof(mbedtls_test_cas_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000480#endif /* MBEDTLS_PEM_PARSE_C */