blob: c45f0628c096243e5785ffdd11c155373d415955 [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
Bence Szépkúti27125ce2025-07-18 19:10:04 +02008#include "tf_psa_crypto_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"
Ben Taylorc801d322025-07-03 15:01:39 +010015#if defined(MBEDTLS_PK_HAVE_PRIVATE_HEADER)
16#include <mbedtls/private/pk_private.h>
17#endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
Valerio Settid928aeb2023-02-08 14:46:15 +010018
Ronald Cron99226e92025-02-14 15:43:22 +010019#include "test/test_certs.h"
Hanno Becker960e5882019-03-12 16:38:17 +000020
21/*
22 *
23 * Test certificates and keys as C variables
24 *
25 */
26
27/*
28 * CA
29 */
30
31const char mbedtls_test_ca_crt_ec_pem[] = TEST_CA_CRT_EC_PEM;
32const char mbedtls_test_ca_key_ec_pem[] = TEST_CA_KEY_EC_PEM;
33const char mbedtls_test_ca_pwd_ec_pem[] = TEST_CA_PWD_EC_PEM;
34const char mbedtls_test_ca_key_rsa_pem[] = TEST_CA_KEY_RSA_PEM;
35const char mbedtls_test_ca_pwd_rsa_pem[] = TEST_CA_PWD_RSA_PEM;
36const char mbedtls_test_ca_crt_rsa_sha1_pem[] = TEST_CA_CRT_RSA_SHA1_PEM;
37const char mbedtls_test_ca_crt_rsa_sha256_pem[] = TEST_CA_CRT_RSA_SHA256_PEM;
38
39const unsigned char mbedtls_test_ca_crt_ec_der[] = TEST_CA_CRT_EC_DER;
40const unsigned char mbedtls_test_ca_key_ec_der[] = TEST_CA_KEY_EC_DER;
41const unsigned char mbedtls_test_ca_key_rsa_der[] = TEST_CA_KEY_RSA_DER;
42const unsigned char mbedtls_test_ca_crt_rsa_sha1_der[] =
43 TEST_CA_CRT_RSA_SHA1_DER;
44const unsigned char mbedtls_test_ca_crt_rsa_sha256_der[] =
45 TEST_CA_CRT_RSA_SHA256_DER;
46
47const size_t mbedtls_test_ca_crt_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010048 sizeof(mbedtls_test_ca_crt_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000049const size_t mbedtls_test_ca_key_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010050 sizeof(mbedtls_test_ca_key_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000051const size_t mbedtls_test_ca_pwd_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010052 sizeof(mbedtls_test_ca_pwd_ec_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +000053const size_t mbedtls_test_ca_key_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010054 sizeof(mbedtls_test_ca_key_rsa_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000055const size_t mbedtls_test_ca_pwd_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010056 sizeof(mbedtls_test_ca_pwd_rsa_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +000057const size_t mbedtls_test_ca_crt_rsa_sha1_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010058 sizeof(mbedtls_test_ca_crt_rsa_sha1_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000059const size_t mbedtls_test_ca_crt_rsa_sha256_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010060 sizeof(mbedtls_test_ca_crt_rsa_sha256_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000061
62const size_t mbedtls_test_ca_crt_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010063 sizeof(mbedtls_test_ca_crt_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +000064const size_t mbedtls_test_ca_key_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010065 sizeof(mbedtls_test_ca_key_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +000066const size_t mbedtls_test_ca_pwd_ec_der_len = 0;
67const size_t mbedtls_test_ca_key_rsa_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010068 sizeof(mbedtls_test_ca_key_rsa_der);
Hanno Becker960e5882019-03-12 16:38:17 +000069const size_t mbedtls_test_ca_pwd_rsa_der_len = 0;
70const size_t mbedtls_test_ca_crt_rsa_sha1_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010071 sizeof(mbedtls_test_ca_crt_rsa_sha1_der);
Hanno Becker960e5882019-03-12 16:38:17 +000072const size_t mbedtls_test_ca_crt_rsa_sha256_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010073 sizeof(mbedtls_test_ca_crt_rsa_sha256_der);
Hanno Becker960e5882019-03-12 16:38:17 +000074
75/*
76 * Server
77 */
78
79const char mbedtls_test_srv_crt_ec_pem[] = TEST_SRV_CRT_EC_PEM;
80const char mbedtls_test_srv_key_ec_pem[] = TEST_SRV_KEY_EC_PEM;
81const char mbedtls_test_srv_pwd_ec_pem[] = "";
82const char mbedtls_test_srv_key_rsa_pem[] = TEST_SRV_KEY_RSA_PEM;
83const char mbedtls_test_srv_pwd_rsa_pem[] = "";
84const char mbedtls_test_srv_crt_rsa_sha1_pem[] = TEST_SRV_CRT_RSA_SHA1_PEM;
85const char mbedtls_test_srv_crt_rsa_sha256_pem[] = TEST_SRV_CRT_RSA_SHA256_PEM;
86
87const unsigned char mbedtls_test_srv_crt_ec_der[] = TEST_SRV_CRT_EC_DER;
88const unsigned char mbedtls_test_srv_key_ec_der[] = TEST_SRV_KEY_EC_DER;
89const unsigned char mbedtls_test_srv_key_rsa_der[] = TEST_SRV_KEY_RSA_DER;
90const unsigned char mbedtls_test_srv_crt_rsa_sha1_der[] =
91 TEST_SRV_CRT_RSA_SHA1_DER;
92const unsigned char mbedtls_test_srv_crt_rsa_sha256_der[] =
93 TEST_SRV_CRT_RSA_SHA256_DER;
94
95const size_t mbedtls_test_srv_crt_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010096 sizeof(mbedtls_test_srv_crt_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000097const size_t mbedtls_test_srv_key_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +010098 sizeof(mbedtls_test_srv_key_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +000099const size_t mbedtls_test_srv_pwd_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100100 sizeof(mbedtls_test_srv_pwd_ec_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000101const size_t mbedtls_test_srv_key_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100102 sizeof(mbedtls_test_srv_key_rsa_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000103const size_t mbedtls_test_srv_pwd_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100104 sizeof(mbedtls_test_srv_pwd_rsa_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000105const size_t mbedtls_test_srv_crt_rsa_sha1_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100106 sizeof(mbedtls_test_srv_crt_rsa_sha1_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000107const size_t mbedtls_test_srv_crt_rsa_sha256_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100108 sizeof(mbedtls_test_srv_crt_rsa_sha256_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000109
110const size_t mbedtls_test_srv_crt_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100111 sizeof(mbedtls_test_srv_crt_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000112const size_t mbedtls_test_srv_key_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100113 sizeof(mbedtls_test_srv_key_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000114const size_t mbedtls_test_srv_pwd_ec_der_len = 0;
115const size_t mbedtls_test_srv_key_rsa_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100116 sizeof(mbedtls_test_srv_key_rsa_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000117const size_t mbedtls_test_srv_pwd_rsa_der_len = 0;
118const size_t mbedtls_test_srv_crt_rsa_sha1_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100119 sizeof(mbedtls_test_srv_crt_rsa_sha1_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000120const size_t mbedtls_test_srv_crt_rsa_sha256_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100121 sizeof(mbedtls_test_srv_crt_rsa_sha256_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000122
123/*
124 * Client
125 */
126
127const char mbedtls_test_cli_crt_ec_pem[] = TEST_CLI_CRT_EC_PEM;
128const char mbedtls_test_cli_key_ec_pem[] = TEST_CLI_KEY_EC_PEM;
129const char mbedtls_test_cli_pwd_ec_pem[] = "";
130const char mbedtls_test_cli_key_rsa_pem[] = TEST_CLI_KEY_RSA_PEM;
131const char mbedtls_test_cli_pwd_rsa_pem[] = "";
132const char mbedtls_test_cli_crt_rsa_pem[] = TEST_CLI_CRT_RSA_PEM;
133
134const unsigned char mbedtls_test_cli_crt_ec_der[] = TEST_CLI_CRT_EC_DER;
135const unsigned char mbedtls_test_cli_key_ec_der[] = TEST_CLI_KEY_EC_DER;
136const unsigned char mbedtls_test_cli_key_rsa_der[] = TEST_CLI_KEY_RSA_DER;
137const unsigned char mbedtls_test_cli_crt_rsa_der[] = TEST_CLI_CRT_RSA_DER;
138
139const size_t mbedtls_test_cli_crt_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100140 sizeof(mbedtls_test_cli_crt_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000141const size_t mbedtls_test_cli_key_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100142 sizeof(mbedtls_test_cli_key_ec_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000143const size_t mbedtls_test_cli_pwd_ec_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100144 sizeof(mbedtls_test_cli_pwd_ec_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000145const size_t mbedtls_test_cli_key_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100146 sizeof(mbedtls_test_cli_key_rsa_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000147const size_t mbedtls_test_cli_pwd_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100148 sizeof(mbedtls_test_cli_pwd_rsa_pem) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000149const size_t mbedtls_test_cli_crt_rsa_pem_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100150 sizeof(mbedtls_test_cli_crt_rsa_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000151
152const size_t mbedtls_test_cli_crt_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100153 sizeof(mbedtls_test_cli_crt_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000154const size_t mbedtls_test_cli_key_ec_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100155 sizeof(mbedtls_test_cli_key_ec_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000156const size_t mbedtls_test_cli_key_rsa_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100157 sizeof(mbedtls_test_cli_key_rsa_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000158const size_t mbedtls_test_cli_crt_rsa_der_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100159 sizeof(mbedtls_test_cli_crt_rsa_der);
Hanno Becker960e5882019-03-12 16:38:17 +0000160
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 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000172
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200173#if defined(MBEDTLS_PEM_PARSE_C)
Manuel Pégourié-Gonnard641de712013-09-25 13:23:33 +0200174
Hanno Becker960e5882019-03-12 16:38:17 +0000175/* 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
237const char mbedtls_test_ca_key_rsa[] = TEST_CA_KEY_RSA;
238const char mbedtls_test_ca_pwd_rsa[] = TEST_CA_PWD_RSA;
239const char mbedtls_test_ca_crt_rsa_sha256[] = TEST_CA_CRT_RSA_SHA256;
240const char mbedtls_test_ca_crt_rsa_sha1[] = TEST_CA_CRT_RSA_SHA1;
241const char mbedtls_test_ca_key_ec[] = TEST_CA_KEY_EC;
242const char mbedtls_test_ca_pwd_ec[] = TEST_CA_PWD_EC;
243const char mbedtls_test_ca_crt_ec[] = TEST_CA_CRT_EC;
244
245const char mbedtls_test_srv_key_rsa[] = TEST_SRV_KEY_RSA;
246const char mbedtls_test_srv_pwd_rsa[] = TEST_SRV_PWD_RSA;
247const char mbedtls_test_srv_crt_rsa_sha256[] = TEST_SRV_CRT_RSA_SHA256;
248const char mbedtls_test_srv_crt_rsa_sha1[] = TEST_SRV_CRT_RSA_SHA1;
249const char mbedtls_test_srv_key_ec[] = TEST_SRV_KEY_EC;
250const char mbedtls_test_srv_pwd_ec[] = TEST_SRV_PWD_EC;
251const char mbedtls_test_srv_crt_ec[] = TEST_SRV_CRT_EC;
252
253const char mbedtls_test_cli_key_rsa[] = TEST_CLI_KEY_RSA;
254const char mbedtls_test_cli_pwd_rsa[] = TEST_CLI_PWD_RSA;
255const char mbedtls_test_cli_crt_rsa[] = TEST_CLI_CRT_RSA;
256const char mbedtls_test_cli_key_ec[] = TEST_CLI_KEY_EC;
257const char mbedtls_test_cli_pwd_ec[] = TEST_CLI_PWD_EC;
258const char mbedtls_test_cli_crt_ec[] = TEST_CLI_CRT_EC;
259
260const size_t mbedtls_test_ca_key_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100261 sizeof(mbedtls_test_ca_key_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000262const size_t mbedtls_test_ca_pwd_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100263 sizeof(mbedtls_test_ca_pwd_rsa) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000264const size_t mbedtls_test_ca_crt_rsa_sha256_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100265 sizeof(mbedtls_test_ca_crt_rsa_sha256);
Hanno Becker960e5882019-03-12 16:38:17 +0000266const size_t mbedtls_test_ca_crt_rsa_sha1_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100267 sizeof(mbedtls_test_ca_crt_rsa_sha1);
Hanno Becker960e5882019-03-12 16:38:17 +0000268const size_t mbedtls_test_ca_key_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100269 sizeof(mbedtls_test_ca_key_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000270const size_t mbedtls_test_ca_pwd_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100271 sizeof(mbedtls_test_ca_pwd_ec) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000272const size_t mbedtls_test_ca_crt_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100273 sizeof(mbedtls_test_ca_crt_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000274
275const size_t mbedtls_test_srv_key_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100276 sizeof(mbedtls_test_srv_key_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000277const size_t mbedtls_test_srv_pwd_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100278 sizeof(mbedtls_test_srv_pwd_rsa) -1;
Hanno Becker960e5882019-03-12 16:38:17 +0000279const size_t mbedtls_test_srv_crt_rsa_sha256_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100280 sizeof(mbedtls_test_srv_crt_rsa_sha256);
Hanno Becker960e5882019-03-12 16:38:17 +0000281const size_t mbedtls_test_srv_crt_rsa_sha1_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100282 sizeof(mbedtls_test_srv_crt_rsa_sha1);
Hanno Becker960e5882019-03-12 16:38:17 +0000283const size_t mbedtls_test_srv_key_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100284 sizeof(mbedtls_test_srv_key_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000285const size_t mbedtls_test_srv_pwd_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100286 sizeof(mbedtls_test_srv_pwd_ec) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000287const size_t mbedtls_test_srv_crt_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100288 sizeof(mbedtls_test_srv_crt_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000289
290const size_t mbedtls_test_cli_key_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100291 sizeof(mbedtls_test_cli_key_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000292const size_t mbedtls_test_cli_pwd_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100293 sizeof(mbedtls_test_cli_pwd_rsa) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000294const size_t mbedtls_test_cli_crt_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100295 sizeof(mbedtls_test_cli_crt_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000296const size_t mbedtls_test_cli_key_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100297 sizeof(mbedtls_test_cli_key_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000298const size_t mbedtls_test_cli_pwd_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100299 sizeof(mbedtls_test_cli_pwd_ec) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000300const size_t mbedtls_test_cli_crt_ec_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100301 sizeof(mbedtls_test_cli_crt_ec);
Hanno Becker960e5882019-03-12 16:38:17 +0000302
303/*
304 * Dispatch between SHA-1 and SHA-256
305 */
306
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100307#if defined(PSA_WANT_ALG_SHA_256)
Hanno Becker960e5882019-03-12 16:38:17 +0000308#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
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100313#endif /* PSA_WANT_ALG_SHA_256 */
Hanno Becker960e5882019-03-12 16:38:17 +0000314
315const char mbedtls_test_ca_crt_rsa[] = TEST_CA_CRT_RSA;
316const char mbedtls_test_srv_crt_rsa[] = TEST_SRV_CRT_RSA;
317
318const size_t mbedtls_test_ca_crt_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100319 sizeof(mbedtls_test_ca_crt_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000320const size_t mbedtls_test_srv_crt_rsa_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100321 sizeof(mbedtls_test_srv_crt_rsa);
Hanno Becker960e5882019-03-12 16:38:17 +0000322
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
Hanno Becker960e5882019-03-12 16:38:17 +0000354#endif /* MBEDTLS_RSA_C */
355
356/* API stability forces us to declare
357 * mbedtls_test_{ca|srv|cli}_{key|pwd|crt}
358 * as pointers. */
359static const char test_ca_key[] = TEST_CA_KEY;
360static const char test_ca_pwd[] = TEST_CA_PWD;
361static const char test_ca_crt[] = TEST_CA_CRT;
362
363static const char test_srv_key[] = TEST_SRV_KEY;
364static const char test_srv_pwd[] = TEST_SRV_PWD;
365static const char test_srv_crt[] = TEST_SRV_CRT;
366
367static const char test_cli_key[] = TEST_CLI_KEY;
368static const char test_cli_pwd[] = TEST_CLI_PWD;
369static const char test_cli_crt[] = TEST_CLI_CRT;
370
371const char *mbedtls_test_ca_key = test_ca_key;
372const char *mbedtls_test_ca_pwd = test_ca_pwd;
373const char *mbedtls_test_ca_crt = test_ca_crt;
374
375const char *mbedtls_test_srv_key = test_srv_key;
376const char *mbedtls_test_srv_pwd = test_srv_pwd;
377const char *mbedtls_test_srv_crt = test_srv_crt;
378
379const char *mbedtls_test_cli_key = test_cli_key;
380const char *mbedtls_test_cli_pwd = test_cli_pwd;
381const char *mbedtls_test_cli_crt = test_cli_crt;
382
383const size_t mbedtls_test_ca_key_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100384 sizeof(test_ca_key);
Hanno Becker960e5882019-03-12 16:38:17 +0000385const size_t mbedtls_test_ca_pwd_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100386 sizeof(test_ca_pwd) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000387const size_t mbedtls_test_ca_crt_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100388 sizeof(test_ca_crt);
Hanno Becker960e5882019-03-12 16:38:17 +0000389
390const size_t mbedtls_test_srv_key_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100391 sizeof(test_srv_key);
Hanno Becker960e5882019-03-12 16:38:17 +0000392const size_t mbedtls_test_srv_pwd_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100393 sizeof(test_srv_pwd) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000394const size_t mbedtls_test_srv_crt_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100395 sizeof(test_srv_crt);
Hanno Becker960e5882019-03-12 16:38:17 +0000396
397const size_t mbedtls_test_cli_key_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100398 sizeof(test_cli_key);
Hanno Becker960e5882019-03-12 16:38:17 +0000399const size_t mbedtls_test_cli_pwd_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100400 sizeof(test_cli_pwd) - 1;
Hanno Becker960e5882019-03-12 16:38:17 +0000401const size_t mbedtls_test_cli_crt_len =
Gilles Peskine449bd832023-01-11 14:50:10 +0100402 sizeof(test_cli_crt);
Hanno Becker960e5882019-03-12 16:38:17 +0000403
404/*
405 *
406 * Lists of certificates
407 *
408 */
409
410/* List of CAs in PEM or DER, depending on config */
Gilles Peskine449bd832023-01-11 14:50:10 +0100411const char *mbedtls_test_cas[] = {
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100412#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_1)
Gilles Peskine750c3532017-05-05 18:56:30 +0200413 mbedtls_test_ca_crt_rsa_sha1,
414#endif
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100415#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_256)
Gilles Peskine750c3532017-05-05 18:56:30 +0200416 mbedtls_test_ca_crt_rsa_sha256,
Manuel Pégourié-Gonnard2f165062015-03-27 10:20:26 +0100417#endif
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100418#if defined(PSA_HAVE_ALG_SOME_ECDSA)
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200419 mbedtls_test_ca_crt_ec,
Manuel Pégourié-Gonnard2f165062015-03-27 10:20:26 +0100420#endif
421 NULL
422};
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200423const size_t mbedtls_test_cas_len[] = {
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100424#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_1)
Gilles Peskine449bd832023-01-11 14:50:10 +0100425 sizeof(mbedtls_test_ca_crt_rsa_sha1),
Gilles Peskine750c3532017-05-05 18:56:30 +0200426#endif
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100427#if defined(MBEDTLS_RSA_C) && defined(PSA_WANT_ALG_SHA_256)
Gilles Peskine449bd832023-01-11 14:50:10 +0100428 sizeof(mbedtls_test_ca_crt_rsa_sha256),
Manuel Pégourié-Gonnard2f165062015-03-27 10:20:26 +0100429#endif
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100430#if defined(PSA_HAVE_ALG_SOME_ECDSA)
Gilles Peskine449bd832023-01-11 14:50:10 +0100431 sizeof(mbedtls_test_ca_crt_ec),
Manuel Pégourié-Gonnard2f165062015-03-27 10:20:26 +0100432#endif
433 0
434};
435
Hanno Becker960e5882019-03-12 16:38:17 +0000436/* List of all available CA certificates in DER format */
Gilles Peskine449bd832023-01-11 14:50:10 +0100437const unsigned char *mbedtls_test_cas_der[] = {
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200438#if defined(MBEDTLS_RSA_C)
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100439#if defined(PSA_WANT_ALG_SHA_256)
Hanno Becker960e5882019-03-12 16:38:17 +0000440 mbedtls_test_ca_crt_rsa_sha256_der,
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100441#endif /* PSA_WANT_ALG_SHA_256 */
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100442#if defined(PSA_WANT_ALG_SHA_1)
Hanno Becker960e5882019-03-12 16:38:17 +0000443 mbedtls_test_ca_crt_rsa_sha1_der,
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100444#endif /* PSA_WANT_ALG_SHA_1 */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200445#endif /* MBEDTLS_RSA_C */
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100446#if defined(PSA_HAVE_ALG_SOME_ECDSA)
Hanno Becker960e5882019-03-12 16:38:17 +0000447 mbedtls_test_ca_crt_ec_der,
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100448#endif /* PSA_HAVE_ALG_SOME_ECDSA */
Hanno Becker960e5882019-03-12 16:38:17 +0000449 NULL
450};
451
452const size_t mbedtls_test_cas_der_len[] = {
453#if defined(MBEDTLS_RSA_C)
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100454#if defined(PSA_WANT_ALG_SHA_256)
Gilles Peskine449bd832023-01-11 14:50:10 +0100455 sizeof(mbedtls_test_ca_crt_rsa_sha256_der),
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100456#endif /* PSA_WANT_ALG_SHA_256 */
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100457#if defined(PSA_WANT_ALG_SHA_1)
Gilles Peskine449bd832023-01-11 14:50:10 +0100458 sizeof(mbedtls_test_ca_crt_rsa_sha1_der),
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100459#endif /* PSA_WANT_ALG_SHA_1 */
Hanno Becker960e5882019-03-12 16:38:17 +0000460#endif /* MBEDTLS_RSA_C */
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100461#if defined(PSA_HAVE_ALG_SOME_ECDSA)
Gilles Peskine449bd832023-01-11 14:50:10 +0100462 sizeof(mbedtls_test_ca_crt_ec_der),
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100463#endif /* PSA_HAVE_ALG_SOME_ECDSA */
Hanno Becker960e5882019-03-12 16:38:17 +0000464 0
465};
466
467/* Concatenation of all available CA certificates in PEM format */
468#if defined(MBEDTLS_PEM_PARSE_C)
469const char mbedtls_test_cas_pem[] =
470#if defined(MBEDTLS_RSA_C)
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100471#if defined(PSA_WANT_ALG_SHA_256)
Hanno Becker960e5882019-03-12 16:38:17 +0000472 TEST_CA_CRT_RSA_SHA256_PEM
Elena Uziunaite0916cd72024-05-23 17:01:07 +0100473#endif /* PSA_WANT_ALG_SHA_256 */
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100474#if defined(PSA_WANT_ALG_SHA_1)
Hanno Becker960e5882019-03-12 16:38:17 +0000475 TEST_CA_CRT_RSA_SHA1_PEM
Elena Uziunaite9fc5be02024-09-04 18:12:59 +0100476#endif /* PSA_WANT_ALG_SHA_1 */
Hanno Becker960e5882019-03-12 16:38:17 +0000477#endif /* MBEDTLS_RSA_C */
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100478#if defined(PSA_HAVE_ALG_SOME_ECDSA)
Hanno Becker960e5882019-03-12 16:38:17 +0000479 TEST_CA_CRT_EC_PEM
Elena Uziunaitea6950b82024-07-30 13:55:59 +0100480#endif /* PSA_HAVE_ALG_SOME_ECDSA */
Hanno Becker960e5882019-03-12 16:38:17 +0000481 "";
Gilles Peskine449bd832023-01-11 14:50:10 +0100482const size_t mbedtls_test_cas_pem_len = sizeof(mbedtls_test_cas_pem);
Hanno Becker960e5882019-03-12 16:38:17 +0000483#endif /* MBEDTLS_PEM_PARSE_C */